The Kiyoh Review Invite template sends review invitation emails to customers directly from Google Tag Manager by calling the Kiyoh API on order confirmation. It uses GTM’s sendPixel method to fire a GET request to the Kiyoh invitation endpoint with customer and order details as URL parameters. The template supports both Kiyoh and Klantenvertellen platforms, which share the same API but use different tenant identifiers.
Features
- Sends review invitations via the Kiyoh/Klantenvertellen API without custom code
- Supports both Kiyoh (international) and Klantenvertellen (Netherlands) platforms
- Configurable invitation delay in days to time the email after delivery
- Multi-language support: Dutch, English, German, and French
- Fires as a lightweight pixel request with no script injection
- Maps directly to Data Layer variables for customer and order information
Installation
Add the template to your GTM container from the Community Template Gallery, then create a new tag using the Kiyoh Review Invite type.
Field Reference
| Field | Required | Description |
|---|---|---|
| API Hash | Yes | Your API authentication hash from the Kiyoh/Klantenvertellen dashboard |
| Location ID | Yes | The location identifier for your business within Kiyoh |
| Platform | Yes | Select Kiyoh (tenantId 98) or Klantenvertellen (tenantId 99) |
| Customer Email | Yes | The customer’s email address for the invitation |
| First Name | No | Customer’s first name for personalization |
| Last Name | No | Customer’s last name for personalization |
| Order ID | No | The order or transaction reference number |
| Delay | No | Number of days to wait before sending the invitation (e.g. 5 for five days after the order) |
| Language | No | Invitation email language: NL (Dutch), EN (English), DE (German), or FR (French) |
Configuration Guide
The template constructs a GET request to the Kiyoh invitation API:
https://www.kiyoh.com/v1/invite/external?hash={hash}&location_id={locationId}&tenantId={tenantId}&email={email}&first_name={firstName}&last_name={lastName}&ref_code={orderId}&delay={delay}&language={language}
The tenantId is set automatically based on your Platform selection: 98 for Kiyoh, 99 for Klantenvertellen.
Steps:
- Log into your Kiyoh or Klantenvertellen dashboard and navigate to the API settings to find your API Hash and Location ID.
- Create a new tag in GTM using the Kiyoh Review Invite template.
- Enter your API Hash and Location ID.
- Select the correct Platform (Kiyoh or Klantenvertellen).
- Map Customer Email to a GTM variable that captures the buyer’s email on the order confirmation page. Use a Data Layer Variable pointing to your purchase event data.
- Optionally map First Name, Last Name, and Order ID to their respective Data Layer Variables.
- Set the Delay value to control when the invitation is sent. A delay of 3-7 days is common, giving the customer time to receive their order before being asked for a review.
- Set the Language to match your customer’s locale.
Example variable mapping:
| Template Field | GTM Variable | Data Layer Key |
|---|---|---|
| Customer Email | {{DLV - customerEmail}} |
customerEmail |
| First Name | {{DLV - customerFirstName}} |
customerFirstName |
| Last Name | {{DLV - customerLastName}} |
customerLastName |
| Order ID | {{DLV - orderId}} |
orderId |
Triggers and Setup
Recommended trigger: Fire this tag on the order confirmation page using one of these approaches:
Option 1 — Custom Event trigger:
- Trigger type: Custom Event
- Event name:
purchase - This fires when your site pushes the purchase event to the Data Layer
Option 2 — Page View trigger with URL condition:
- Trigger type: Page View
- Condition: Page URL contains
/order-confirmationor/checkout/thank-you(adjust to match your site)
Data Layer example (Shopify):
dataLayer.push({
event: 'purchase',
customerEmail: '{{ customer.email }}',
customerFirstName: '{{ customer.first_name }}',
customerLastName: '{{ customer.last_name }}',
orderId: '{{ order.name }}'
});
Consent considerations: This tag sends a customer’s email address to an external API. It should only fire after the customer has consented to data processing for review invitations, or where you have a legitimate interest basis. Configure the tag’s consent settings in GTM accordingly.
Deduplication: Use the Order ID field to prevent duplicate invitations. Kiyoh uses the reference code to identify unique invitations.
Troubleshooting
No invitation email received:
- Verify the API Hash is correct and active in your Kiyoh dashboard.
- Check that the Customer Email field resolves to a valid email address in GTM Preview mode.
- Confirm the tag fires by checking GTM Preview — look for the tag in the fired tags list.
- If a Delay is set, wait for the specified number of days before expecting the email.
- Check the Kiyoh dashboard for invitation logs to see if the API received the request.
Wrong platform selected:
- Kiyoh and Klantenvertellen use different tenant IDs. Using the wrong one will cause the API to reject the request. Kiyoh is tenantId 98 (international), Klantenvertellen is tenantId 99 (Netherlands).
Invitation sent in wrong language:
- Double-check the Language field. If left empty, the API uses the default language configured in your Kiyoh account.
Tag fires but API returns an error:
- The
sendPixelmethod in GTM does not expose response data. To debug API issues, temporarily replicate the request in your browser’s address bar or with a tool like Postman to inspect the response. - Verify your Location ID is correct — an incorrect ID will return an authorization error.
Duplicate invitations:
- Ensure the Order ID is passed correctly. Without it, Kiyoh cannot deduplicate requests.
- If the tag fires multiple times (e.g., on page reload), add a trigger condition or use a GTM cookie/variable to ensure the tag only fires once per order.
Support
- Kiyoh website: https://www.kiyoh.com
- Klantenvertellen website: https://www.klantenvertellen.nl
- Kiyoh API documentation: Available in your Kiyoh dashboard under API settings
- Kiyoh support contact: https://www.kiyoh.com/contact
For issues specific to this GTM template (not Kiyoh platform issues), open an issue on the template’s GitHub repository.