Customer experience
Feedback & NPS Response
Reads customer feedback and NPS scores, then drafts the right reply - thank-you, apology, or follow-up.
How the data flows
Requests move between your backend and the AI workflows automatically. Here's the exact path a request takes.
AI workflow
feedback_triage_workflow
Classifies feedback and starts the reply pipeline
Backend event
feedback_submitted
Backend event
reply_ready
AI workflow
feedback_reply_workflow
Drafts the right reply for the customer
What you get
Every template is built from two kinds of pieces: Workflows and Response Formats.
Workflow
feedback_triage_workflow
Classifies feedback and starts the reply pipeline
Workflow
feedback_reply_workflow
Drafts the right reply for the customer
Response format
feedback_triage_response
Classification of the customer feedback
Response format
feedback_reply_response
Drafted reply to the customer
Details
The full specification of each workflow, with plain-English explanations. Everything below is set in the downloaded file and can be changed after import.
feedback_triage_workflow
Classifies feedback and starts the reply pipeline
The primary model plus automatic fallback models if the primary is unavailable.
The structured JSON this workflow returns. Fields are defined by you and enforced by ModelRiver.
Fields you include in each request so the workflow can personalise its answer.
Identical requests are answered from memory within this window, which is faster and cheaper.
Steps that run automatically around this workflow, in order.
Runs live against your connected AI provider.
feedback_reply_workflow
Drafts the right reply for the customer
The primary model plus automatic fallback models if the primary is unavailable.
The structured JSON this workflow returns. Fields are defined by you and enforced by ModelRiver.
Fields you include in each request so the workflow can personalise its answer.
Runs live against your connected AI provider.
How to use it
- 1
Download the template
The file is a portable JSON bundle - safe to share and easy to read.
- 2
Open a project in ModelRiver
Sign in, pick a project, and make sure the AI providers used by this template are connected. You can connect them from the Providers section.
- 3
Import it
Open the Import button in your project, paste or upload the file, review the preview, and confirm. Everything is created atomically, so nothing is overwritten. How import & export works
Template file
Technical users can inspect the raw bundle below.
View full template JSON
{
"version": 1,
"structures": [
{
"name": "feedback_triage_response",
"description": "Classification of the customer feedback",
"example": {
"sentiment": "negative",
"topic": "onboarding",
"rating_seen": 3,
"needs_follow_up": true
},
"schema": {
"type": "object",
"properties": {
"sentiment": {
"type": "string",
"enum": [
"positive",
"neutral",
"negative"
]
},
"topic": {
"type": "string"
},
"rating_seen": {
"type": "number"
},
"needs_follow_up": {
"type": "boolean"
}
},
"required": [
"sentiment",
"topic",
"rating_seen",
"needs_follow_up"
],
"additionalProperties": false
}
},
{
"name": "feedback_reply_response",
"description": "Drafted reply to the customer",
"example": {
"reply_tone": "apologetic",
"customer_reply": "Thanks for flagging this - we're sorry onboarding was confusing, and we're on it.",
"follow_up_action": "Share the fix when onboarding is improved"
},
"schema": {
"type": "object",
"properties": {
"reply_tone": {
"type": "string",
"enum": [
"appreciative",
"apologetic",
"neutral"
]
},
"customer_reply": {
"type": "string"
},
"follow_up_action": {
"type": "string"
}
},
"required": [
"reply_tone",
"customer_reply",
"follow_up_action"
],
"additionalProperties": false
}
}
],
"workflows": [
{
"name": "feedback_triage_workflow",
"description": "Classifies feedback and starts the reply pipeline",
"provider": "openai",
"model": "gpt-5.6-terra",
"backups": [
{
"provider": "anthropic",
"model": "claude-haiku-4-5-20251001"
}
],
"request_type": "chat",
"system_instructions": "Classify the customer feedback: sentiment, topic, the rating they gave, and whether a follow-up is needed. Be objective and concise.",
"structure": "feedback_triage_response",
"customer_fields": [
"customer_name",
"feedback_text",
"rating"
],
"test_mode": false,
"cache_window_seconds": 600,
"backend_pipeline": {
"enabled": true,
"events": [
{
"name": "feedback_submitted"
},
{
"name": "draft_reply",
"target_workflow": "feedback_reply_workflow"
},
{
"name": "reply_ready"
}
]
}
},
{
"name": "feedback_reply_workflow",
"description": "Drafts the right reply for the customer",
"provider": "openai",
"model": "gpt-5.6-terra",
"backups": [
{
"provider": "anthropic",
"model": "claude-haiku-4-5-20251001"
}
],
"request_type": "chat",
"system_instructions": "Draft a short reply matching the feedback: thank happy customers, apologize and take ownership for unhappy ones, and suggest a follow-up action for the team. Never make excuses.",
"structure": "feedback_reply_response",
"customer_fields": [
"customer_name",
"feedback_text",
"rating"
],
"test_mode": false
}
]
}Looking for something else?
More templates are on the way. In the meantime, you can build your own workflows from scratch in the ModelRiver console.