Response Templates Controller
Source: internal/api/v1/reviews/controllers/response-templates.js
Service: responseTemplates service
Module: Reviews
Overview
The Response Templates controller manages reusable response templates for review replies. It enables creating pre-written responses for common review scenarios, improving response consistency and speed.
Key Capabilities
- Create Templates with name, response text, and state
- List All Templates with pagination and search
- Get Single Template by ID
- Update Templates for editing content
- Delete Templates when no longer needed
- Duplicate Templates for easy variations
MongoDB Collections
| Collection | Operations | Purpose |
|---|---|---|
review-response-templates | CREATE, READ, UPDATE, DELETE | Store response templates |
Service Methods
1. create()
Create a new response template.
Endpoint: POST /reviews/response-templates
Request:
{
"name": "Thank You for 5 Stars",
"response": "Thank you {{author_name}} for your wonderful 5-star review!",
"state": "active"
}
Response:
{
"success": true,
"data": {
"_id": "template_abc",
"account_id": "acc_123",
"user_id": "user_456",
"name": "Thank You for 5 Stars",
"response": "Thank you {{author_name}}!",
"state": "active",
"created_at": "2024-12-08T10:00:00Z"
}
}
2. list()
Retrieve all templates with pagination and search.
Endpoint: GET /reviews/response-templates?page=1&limit=20&search=thank
Query Parameters:
page(number): Page numberlimit(number): Items per pagesearch(string): Search template name
Response:
{
"success": true,
"data": [
{
"_id": "template_abc",
"name": "Thank You for 5 Stars",
"response": "Thank you...",
"state": "active",
"usage_count": 25
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 10
}
}
3. get()
Retrieve single template by ID.
Endpoint: GET /reviews/response-templates/:id?type=auto
Query Parameters:
type(string, optional): "auto" or "manual" - filters template type
Response:
{
"success": true,
"data": {
"_id": "template_abc",
"name": "Thank You for 5 Stars",
"response": "Thank you {{author_name}}!",
"state": "active",
"type": "manual",
"created_at": "2024-12-08T10:00:00Z"
}
}
4. update()
Update existing template.
Endpoint: PUT /reviews/response-templates/:id
Request:
{
"name": "Updated Template Name",
"response": "Updated response text",
"state": "inactive"
}
Response:
{
"success": true,
"data": {
"_id": "template_abc",
"name": "Updated Template Name",
"updated_at": "2024-12-08T15:00:00Z"
}
}
5. delete()
Delete a template.
Endpoint: DELETE /reviews/response-templates/:id
Response:
{
"success": true,
"message": "Deleted successfully"
}
6. duplicate()
Duplicate existing template.
Endpoint: POST /reviews/response-templates/:id/duplicate?type=manual
Response:
{
"success": true,
"data": {
"_id": "template_xyz",
"name": "Thank You for 5 Stars (Copy)",
"state": "inactive",
"created_at": "2024-12-08T16:00:00Z"
}
}
Template Variables
Supported variables in response text:
{{author_name}}- Review author{{rating}}- Star rating{{platform}}- Review platform{{business_name}}- Your business name{{review_date}}- Date of review
Use Cases
Positive Review Response
{
"name": "5 Star Thank You",
"response": "Thank you {{author_name}} for the 5-star review!"
}
Negative Review Apology
{
"name": "Apology Template",
"response": "We're sorry {{author_name}}. Please contact us at support@..."
}
Service-Specific Response
{
"name": "Great Service",
"response": "We're thrilled our team provided great service!"
}
Authorization
- ✅ Account-scoped:
account_idfrom auth token - ✅ User tracking:
user_idtracked for creators - ❌ No cross-account access
Related Documentation
- Auto Response Rules - Automated responses
- Reviews Controller (link removed - file does not exist) - Review management
Version: 1.0
Last Updated: December 2024
Status: ✅ Production Ready