Build a survey in the Digioh Shopify app, show it on your thank you, order status or checkout page, and send every response to your PostCheckout Pipeline.
This guide covers the survey built into the Digioh Shopify app. It doesn't use the Digioh campaign editor, campaign conditions or your theme.
Before you start
The Digioh app is installed on your Shopify store.
You have a webhook URL to receive responses. Most stores use the Hook URL from their Digioh PostCheckout Pipeline. Any endpoint that accepts a JSON POST works.
Check which pages your plan supports:
Thank you page and Order status page: all Shopify plans.
Checkout page (information, shipping and payment steps): Shopify Plus only.
Set up the survey
Step 1. Copy your Hook URL
In Digioh, open your PostCheckout Pipeline. Expand Details, then Hook URLs, and copy the Hook URL.
Step 2. Open Checkout Settings
In Shopify admin, go to Apps → Digioh and click Checkout Settings.
Step 3. Add and test the webhook
Paste the Hook URL into Webhook URL, then click Test Webhook. A test request is sent to the URL. Open the pipeline and confirm it arrived.
The webhook URL is required. The app won't save your survey until it has a valid URL.
Step 4. Choose where and how often the survey shows
Enable Checkout Survey: turns the survey on or off everywhere, without removing it from your checkout pages.
Show survey only once per customer: when on, the survey hides after a customer submits it in that browser. When off, it shows on every order.
Where to show: tick Checkout page, Thank you page and/or Order status page. A page that's unticked hides the survey even if you've added the block there.
Step 5. Add your questions
Click Add Question for each question. Every question has these settings:
Enabled: untick to hide a question without deleting it.
Survey Question and Survey Description: the question and an optional line of context under it.
Display Type: how customers answer. See Question types below.
Answer Options: for dropdowns, radio buttons and checkboxes. Put each option on its own line.
Maximum rating: for Star Rating, the top of the scale (5 if left empty).
Placeholder / Field Label: the label or hint shown on the answer field.
Required: the customer must answer before they can submit. Required questions show an asterisk (*).
Add an "Other" option with a text box: for choice questions, adds an Other choice that opens a text box when selected.
Use Up and Down to change the order, Duplicate to copy a question, and Remove to delete it.
Step 6. Set the button and thank-you text
Enter the Submit Button Text and the Thank You Message shown after a customer submits. Check the Preview, then click Save.
The preview is approximate. On your store, the survey uses your checkout's own colors and fonts.
Question types
Question types
Display Type | What the customer sees | Answer sent to your webhook |
Dropdown List | A dropdown with your answer options | One value, e.g. google |
Radio Button | A list of options; they pick one | One value |
Checkboxes | A list of options; they pick any number | A list of values, e.g. ["instagram", "tiktok"] |
Star Rating | A dropdown numbered 1 to your maximum rating | The number as text, e.g. "4" |
NPS | A dropdown numbered 0 to 10 | The number as text, e.g. "9" |
Free Text | A multi-line text box | What they typed |
Number | A number field | The number they entered |
Note: Star Rating appears as a numbered dropdown, not as star icons, because Shopify's checkout doesn't offer a star control.
How answers are recorded
For Dropdown List, Radio Button and Checkboxes, your webhook receives a stable value rather than the label the customer saw. The value is the English answer text in lowercase, with spaces and punctuation turned into underscores.
Answer option | Value sent |
Social Media | social_media |
Friend / Family | friend_family |
The value is the same whatever language the customer sees, so French and English responses report together.
If you edit the English text of an answer, its value changes. Update any pipeline steps or reports that match on the old value.
When a customer picks Other, the webhook receives the text they typed.
Languages
English is the default. To translate the survey:
1. Under Languages, type a language code such as fr, es or de and click Add language.
2. Pick it in Editing language. The question, description, answer options, placeholder, button text and thank-you message fields now edit that language.
3. Enter the translations and save.
Customers see the survey in their checkout language. Any text you haven't translated falls back to English. Display type, Required and the Other option apply to every language. Keep answer options in the same order in every language. The survey matches translations to the English options by position.
Add the survey block to your checkout pages
Saving your settings doesn't place the survey on your store. Add the block to each page where you want it:
1. On the Checkout Settings page, click Open Checkout Customization. You can also go to Settings → Checkout → Customize in Shopify admin.
2. Use the page selector at the top of the editor to open the Thank you page.
3. Click Add app block and choose the Digioh survey block (listed as digioh-checkout). Drag it where you want it to appear.
4. Repeat for the Order status page and, on Shopify Plus, the Checkout page.
5. Click Save in the editor.
Test your survey
1. Place a test order, for example with Shopify's Bogus Gateway or your payment provider's test mode.
2. On the thank you page, try submitting without answering a required question. You should see "Please answer all required questions before submitting."
3. Answer the questions and submit. The survey is replaced by your thank-you message and "Your response has been submitted."
4. Open your PostCheckout Pipeline and confirm the response arrived.
With Show survey only once per customer on, the survey stays hidden in that browser after you submit. Use a private window to test again.
What your webhook receives
Each submission sends one POST request with a JSON body like this:
{
"SurveyValue": "google, instagram, tiktok, 9",
"SurveyResponses": [
{ "id": "q1", "question": "How did you hear about us?", "answer": "google" },
{ "id": "q2", "question": "Where do you follow us?", "answer": ["instagram", "tiktok"] },
{ "id": "q3", "question": "How likely are you to recommend us?", "answer": "9" }
],
"Email": "customer@example.com",
"orderDetail": {
"email": "customer@example.com",
"phone": "+15555550123"
},
"data": {
"products": [
{
"product_id": "gid://shopify/Product/7609240649826",
"variant_id": "gid://shopify/ProductVariant/42815829868642",
"variant_title": "Default Title",
"sku": "HO-S30-10PK",
"quantity": 1
}
]
}
}
Field | What it holds |
SurveyResponses | One entry per question: its id, the question text in the customer's language, and the answer. Checkbox answers are lists. |
SurveyValue | Every answer joined into one comma-separated string, for pipelines that read a single field. |
The customer's email, when Shopify shares it with the app. Can be empty. | |
orderDetail | The customer's email and phone, when available. |
data.products | The items in the order: product ID, variant ID, variant title, SKU and quantity. Shopify doesn't give checkout apps the product name, so variant_title is the variant label such as "Small" or "Default Title". |
The request is sent from the customer's browser, so the webhook URL is visible to anyone who looks. Don't put passwords or API keys in it.
The survey doesn't wait for or read the webhook's response. A slow or failed webhook won't stop the customer from seeing the thank-you message.
If you use your own endpoint, read the body as JSON whatever the request's content type. Browsers can send it as text/plain.
Troubleshooting
The survey doesn't appear
Check each of these:
The block is added to that page in the checkout editor, and the editor was saved.
Enable Checkout Survey is on, and the page is ticked under Where to show.
At least one question is enabled.
Show survey only once per customer is off, or you're testing in a browser that hasn't submitted it yet.
For the Checkout page, the store is on Shopify Plus.
"Checkout webhook URL is required" or "Invalid checkout webhook URL format" when saving
Enter the full URL, starting with https://, in Webhook URL.
No responses reach the pipeline
Click Test Webhook and check the pipeline. If the test doesn't arrive either, copy the Hook URL again and make sure the destination accepts POST requests.
Email or phone is empty
Shopify only shares customer contact details with apps it has approved for that data, and only when the customer provided them. Contact support@digioh.com if they're always empty.
Answers look like social_media instead of "Social Media"
That's expected. See How answers are recorded above.
A translation shows in English
That field has no text for the customer's language yet. Choose the language in Editing language, fill in the field and save.
Want to get more from Digioh?
Get the playbooks leading brands use to convert more visitors into revenue.
Browse the Playbooks