Written By William Bowen
Last updated 15 days ago
Intro
The Customer Success Feedback AI Agent for Clerk Chat automates post-experience feedback collection over SMS, engaging customers in natural conversation, extracting insights, and updating their contact card with feedback and a score.
For example, a restaurant owner can send a one-line SMS blast to 100 diners, prompting feedback—when a customer replies, the AI extracts their rating and comments, updates the CRM, and smoothly handles any follow-up questions or gratitude responses.
Use cases
Restaurants & Cafés: Automatically collect diner feedback after a meal to improve service and food quality.
Example: A restaurant texts all guests who dined that evening: “Hey [Name], we’d love to hear about your experience today! How was everything?” The AI collects ratings, notes feedback, and updates customer profiles.Hotels & Resorts: Gather guest satisfaction data at checkout to enhance stays and address concerns.
Example: A hotel sends a message at checkout: “Thanks for staying with us! How was your visit?” The AI records feedback, assigns a rating, and follows up on specific concerns like slow room service.Gyms & Fitness Studios: Collect feedback after workouts or personal training sessions to refine programs.
Example: A fitness studio messages members after a class: “How was your session today? Let us know your thoughts!” The AI logs responses, rates satisfaction, and notes suggestions for improvement.Event Venues & Conferences: Assess attendee experience post-event to refine future programming.
Example: After a business conference, attendees receive: “Hope you enjoyed today’s event! What did you think?” The AI compiles ratings and key insights for event organizers.Museums & Attractions: Gather visitor impressions and recommendations after their visit.
Example: A museum texts visitors: “Thanks for visiting! What did you enjoy most, and what could we improve?” The AI extracts themes and updates customer profiles with feedback.Healthcare Clinics & Dental Offices: Measure patient satisfaction after appointments to enhance care quality.
Example: A dentist’s office follows up: “How was your visit today? We appreciate your feedback!” The AI logs patient responses and flags potential issues for follow-up.Retail Stores & E-commerce: Collect customer service and product feedback to refine offerings.
Example: A clothing brand texts recent buyers: “How was your shopping experience with us?” The AI tracks responses and highlights common themes in customer sentiment.Car Dealerships & Auto Repair Shops: Assess customer satisfaction after service appointments or purchases.
Example: A car dealership follows up: “Thanks for visiting! How was your experience with our team today?” The AI records feedback and identifies areas for service improvement.Airbnb & Short-Term Rentals: Gather guest feedback after their stay to improve hospitality.
Example: An Airbnb host sends: “Hope you had a great stay! Let us know if there’s anything we can do better.” The AI collects ratings and summarizes key insights for the host.Tour & Experience Companies: Capture customer thoughts post-tour to enhance future experiences.
Example: A kayaking tour company follows up: “We hope you loved today’s adventure! What did you think?” The AI logs feedback and identifies suggestions for improvement.
Screenshots



Template
Example{
"$schema": "https://web-api.clerk.chat/pipeline-schema",
"name": "Customer success - feedback agent",
"nodes": [
{
"type": "ai_bot",
"name": "Converse & conclude",
"triggeredBy": [
"unreadMessage.fromAny"
],
"responseType": "user_message",
"nodeConfig": {
"modelProvider": "openai",
"modelVersion": null,
"maxTokens": null,
"temperature": null,
"variables": {},
"prompt": "Your job is to converse with the user conversationally, and conclude the conversation. \n\nIf the client hasn't given us any feedback, nudge them to give us some feedback. \n\nYour messages should be less than 40 words.",
"promptSections": [],
"sectionTemplates": {},
"responseSchema": {
"type": "object",
"required": [],
"properties": {}
},
"opts": {
"sendStructuredConvo": true
}
}
},
{
"type": "tool_runner",
"name": "Update score",
"triggeredBy": [
"unreadMessage.fromAny"
],
"responseType": "json",
"nodeConfig": {
"type": "contact_tools",
"config": {},
"enabledTools": [
"set_attribute"
],
"tools": {
"set_attribute": {
"paramValues": {
"attributeName": {
"type": "fixed",
"value": "Feedback Score"
},
"attributeValue": {
"path": "rating",
"type": "pipeline-variable"
}
}
}
}
}
},
{
"type": "tool_runner",
"name": "Update feedback",
"triggeredBy": [
"unreadMessage.fromAny"
],
"responseType": "json",
"nodeConfig": {
"type": "contact_tools",
"config": {},
"enabledTools": [
"set_attribute"
],
"tools": {
"set_attribute": {
"paramValues": {
"attributeName": {
"type": "fixed",
"value": "Feedback"
},
"attributeValue": {
"path": "feedback",
"type": "pipeline-variable"
}
}
}
}
}
},
{
"type": "ai_bot",
"name": "Extract feedback + score",
"triggeredBy": [
"unreadMessage.fromAny"
],
"responseType": "json",
"nodeConfig": {
"modelProvider": "openai",
"modelVersion": null,
"maxTokens": null,
"temperature": null,
"variables": {},
"prompt": "Your job is to read the conversation history and extract the client's feedback. Ideally, the client would have given us a rating (a number out of 5) and some written feedback. \n\nExtract and output the number as \"rating\". Make sure this is /5\n\nExtract and output their written feedback under \"feedback\".",
"promptSections": [],
"sectionTemplates": {},
"responseSchema": {
"type": "object",
"required": [
"rating",
"feedback"
],
"properties": {
"rating": {
"type": "string"
},
"feedback": {
"type": "string"
}
}
},
"opts": {
"sendStructuredConvo": true
}
}
},
{
"type": "trigger",
"name": "Start",
"triggeredBy": [
"userMessage"
],
"responseType": "json"
}
],
"edges": [
{
"name": null,
"sourceNode": "Update feedback",
"destinationNode": "Update score",
"sourceVariables": null,
"filters": []
},
{
"name": null,
"sourceNode": "Extract feedback + score",
"destinationNode": "Update feedback",
"sourceVariables": null,
"filters": []
},
{
"name": null,
"sourceNode": "Start",
"destinationNode": "Extract feedback + score",
"sourceVariables": null,
"filters": []
},
{
"name": null,
"sourceNode": "Update score",
"destinationNode": "Converse & conclude",
"sourceVariables": null,
"filters": []
}
]
}