Customer Surveys
Collect customer feedback using interactive Viber surveys.
Overview
Transformify supports interactive survey messages that let customers respond with a single tap. Use surveys to:
- Measure customer satisfaction (CSAT)
- Collect Net Promoter Score (NPS)
- Gather product feedback
- Conduct polls
Viber Only
Surveys with interactive tap-to-answer options are a Viber-specific feature. Customers must have Viber installed to receive survey messages.
Implementation
Step 1: Create a Survey Template
Create a survey with up to 5 options:
curl -X POST https://api.transformify.mk/api/v1/templates/viber \
-H "X-API-Key: your-api-key" \
-H "Content-Type: application/json" \
-d '{
"name": "CSAT Survey",
"messageType": 6,
"templateContent": "How was your experience with your recent order #{{orderId}}?",
"viberServiceId": 12345,
"typeSpecificConfig": "{\"options\":[{\"optionText\":\"Very Satisfied\",\"optionValue\":\"5\"},{\"optionText\":\"Satisfied\",\"optionValue\":\"4\"},{\"optionText\":\"Neutral\",\"optionValue\":\"3\"},{\"optionText\":\"Dissatisfied\",\"optionValue\":\"2\"},{\"optionText\":\"Very Dissatisfied\",\"optionValue\":\"1\"}]}"
}'
Step 2: Send Survey Messages
Send surveys to your customers via Viber:
curl -X POST https://api.transformify.mk/api/v1/viber/send \
-H "X-API-Key: your-api-key" \
-H "Content-Type: application/json" \
-d '{
"templateId": "survey-template-id",
"recipients": [
{
"phoneNumber": "38970111111",
"externalUserId": "order_001",
"placeholders": { "orderId": "ORD-2024-001" }
},
{
"phoneNumber": "38970222222",
"externalUserId": "order_002",
"placeholders": { "orderId": "ORD-2024-002" }
},
{
"phoneNumber": "38970333333",
"externalUserId": "order_003",
"placeholders": { "orderId": "ORD-2024-003" }
}
]
}'
Step 3: Retrieve Survey Results
Get individual responses:
curl -X GET "https://api.transformify.mk/api/v1/survey-results?campaignId={campaignId}" \
-H "X-API-Key: your-api-key"
Response:
{
"results": [
{
"id": "result-id-1",
"campaignId": "campaign-id",
"phoneNumber": "38970111111",
"selectedOptionText": "Very Satisfied",
"selectedOptionIndex": 0,
"trackingData": "order_001",
"respondedAt": "2024-01-15T14:30:00Z"
},
{
"id": "result-id-2",
"campaignId": "campaign-id",
"phoneNumber": "38970222222",
"selectedOptionText": "Satisfied",
"selectedOptionIndex": 1,
"trackingData": "order_002",
"respondedAt": "2024-01-15T14:35:00Z"
}
],
"totalCount": 2,
"page": 1,
"pageSize": 20,
"totalPages": 1
}
Step 4: Get Survey Summary
Get aggregated results:
curl -X GET "https://api.transformify.mk/api/v1/survey-results/{campaignId}/summary" \
-H "X-API-Key: your-api-key"
Response:
{
"campaignId": "campaign-id",
"campaignName": "CSAT Survey - January",
"totalResponses": 85,
"totalMessagesSent": 100,
"responseRate": 85.0,
"optionBreakdown": [
{
"optionIndex": 0,
"optionText": "Very Satisfied",
"count": 45,
"percentage": 52.94
},
{
"optionIndex": 1,
"optionText": "Satisfied",
"count": 25,
"percentage": 29.41
},
{
"optionIndex": 2,
"optionText": "Neutral",
"count": 10,
"percentage": 11.76
},
{
"optionIndex": 3,
"optionText": "Dissatisfied",
"count": 3,
"percentage": 3.53
},
{
"optionIndex": 4,
"optionText": "Very Dissatisfied",
"count": 2,
"percentage": 2.35
}
]
}
Survey Types
CSAT (Customer Satisfaction)
{
"templateContent": "How satisfied were you with our service?",
"typeSpecificConfig": "{\"options\":[{\"optionText\":\"Very Satisfied\",\"optionValue\":\"5\"},{\"optionText\":\"Satisfied\",\"optionValue\":\"4\"},{\"optionText\":\"Neutral\",\"optionValue\":\"3\"},{\"optionText\":\"Dissatisfied\",\"optionValue\":\"2\"},{\"optionText\":\"Very Dissatisfied\",\"optionValue\":\"1\"}]}"
}
NPS (Net Promoter Score)
{
"templateContent": "How likely are you to recommend us to a friend? (0-10)",
"typeSpecificConfig": "{\"options\":[{\"optionText\":\"9-10 (Very Likely)\",\"optionValue\":\"promoter\"},{\"optionText\":\"7-8 (Likely)\",\"optionValue\":\"passive\"},{\"optionText\":\"0-6 (Unlikely)\",\"optionValue\":\"detractor\"}]}"
}
Product Poll
{
"templateContent": "Which feature would you like us to add next?",
"typeSpecificConfig": "{\"options\":[{\"optionText\":\"Mobile App\",\"optionValue\":\"mobile_app\"},{\"optionText\":\"Dark Mode\",\"optionValue\":\"dark_mode\"},{\"optionText\":\"API Improvements\",\"optionValue\":\"api\"},{\"optionText\":\"Integrations\",\"optionValue\":\"integrations\"}]}"
}
Best Practices
- Keep it short - Surveys with fewer options get higher response rates
- Time it right - Send shortly after the interaction (within 24 hours)
- Be specific - Reference the specific order/interaction
- Follow up - Respond to negative feedback promptly
- Track trends - Monitor satisfaction scores over time