Skip to main content

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

CollectionOperationsPurpose
review-response-templatesCREATE, READ, UPDATE, DELETEStore 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 number
  • limit (number): Items per page
  • search (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_id from auth token
  • ✅ User tracking: user_id tracked for creators
  • ❌ No cross-account access

  • 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

💬

Documentation Assistant

Ask me anything about the docs

Hi! I'm your documentation assistant. Ask me anything about the docs!

I can help you with:
- Code examples
- Configuration details
- Troubleshooting
- Best practices

Try asking: How do I configure the API?
09:31 AM