# Fire custom triggers (Coming soon)

### Overview

With this destination service, DinMo fires **Voyado custom triggers** for existing Voyado contacts.

Use this service when DinMo is responsible for deciding **when an action should happen**. This is the right option for activation use cases where sending a record from DinMo should immediately trigger a Voyado automation or communication for a known contact. Voyado custom triggers are designed for this type of workflow and can receive contextual JSON data that is then available in the automation and in the resulting content.

To use this destination service, you need to:

1. Create a Voyado destination in DinMo
2. Create an event or custom model in DinMo with one row per trigger to send
3. Create an activation to send those records to Voyado

Each exported record is treated as a new trigger execution.

Learn more about Voyado Custom Triggers [here](https://help.engage.voyado.com/hc/en-gb/articles/23407506807068-Custom-triggers).

### Before you start

Before configuring this destination service, make sure:

* your Voyado team has created the target custom trigger in Voyado
* the corresponding `triggerId` is available
* the contact identifier you plan to use is already available in your DinMo model
* the target contacts already exist in Voyado

Voyado custom triggers can only be fired for contacts that already exist in Engage.

<figure><img src="https://3204318043-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxzBTp1t4OfqV67nXkVse%2Fuploads%2FQgJycwV9kfyb4Rx1vw6K%2Fimage.png?alt=media&#x26;token=62ec4dfb-f71b-4b9a-be4f-7c69feede770" alt=""><figcaption><p>Customer Triggers in Voyado Platform</p></figcaption></figure>

### Destination setup

To start sending custom triggers, first create a Voyado destination with the **Fire custom triggers** destination service.

* Go To Destinations
* Choose your Voyado Engage Platform&#x20;
* On the next page choose the Destination Option: **Fire custom triggers**
* Give it a name&#x20;
* Save

Your destination is now ready and you can start firing actions.&#x20;

### Activation configuration

Once the destination has been created and your DinMo source model is ready, you can configure an activation.

#### Trigger ID

Select or enter the Voyado `triggerId` to fire.

This value must match an existing custom trigger configured in Voyado.

<figure><img src="https://3204318043-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxzBTp1t4OfqV67nXkVse%2Fuploads%2FSspGMrIolAFAMisMX6nL%2Fimage.png?alt=media&#x26;token=403f6254-dda3-41f0-b8b3-39ba09687973" alt=""><figcaption></figcaption></figure>

#### Contact identifier type

Choose which identifier DinMo should use to target the Voyado contact.

Depending on your Voyado setup, supported identifiers can include:

* `contactId`
* `externalId`
* `contactType + key`
* `socialSecurityNumber`

The identifier must match the one used by Voyado for the target contact. Voyado provides dedicated trigger endpoints depending on the identifier type.

#### Run behavior

This destination service behaves like an event export.

Each new record in the source model is treated as a new custom trigger execution. Previously exported records are not updated or deleted.

### Fields mapping

In the **Fields mapping** section, map the DinMo field that contains the contact identifier required by Voyado.

At least one identifier mapping is required depending on the chosen contact identifier

Typical mappings include:

* a warehouse or CRM external ID
* a stored Voyado contact ID
* another identifier already used by your Voyado implementation

If DinMo sends an identifier that does not match an existing Voyado contact, the custom trigger cannot be executed for that record.

### Payload mapping

In the **Payload mapping** section, choose which additional fields should be included in the payload sent to Voyado.

This payload can contain any contextual data you want to make available in the custom trigger flow, as long as it matches the schema expected by the target trigger.

Examples of fields commonly sent in the payload include:

* customer attributes
* account or subscription details
* booking or appointment information
* order information
* product information
* calculated fields built in DinMo
* contextual values pulled from related entities

DinMo builds one JSON payload per exported record and sends it together with the custom trigger call. Voyado custom trigger payload fields can be used in automation logic and as variable data in content.

#### Mapping recommendations

For best results, we recommend:

* using stable and explicit field names
* keeping the same payload structure for a given `triggerId`
* preferring simple scalar values when possible
* flattening repeated values into numbered fields when needed
* validating the final payload with a test record before enabling the activation

### Example payload

```
{
  "customer_first_name": "Anna",
  "account_id": "CUST-1284",
  "appointment_date": "2026-03-20T09:00:00Z",
  "location_name": "Central Store",
  "recommended_item_1_name": "Premium Support",
  "recommended_item_1_url": "https://example.com/premium-support"
}
```

### Important notes

#### Custom trigger schema

If the custom trigger is used in Voyado Design Studio, the available personalized fields must be part of the custom trigger schema defined in Voyado. If a field is not part of that schema, it will not be available for use in the content editor. Voyado also notes that customers cannot directly edit an existing custom trigger schema themselves.

#### Recommended use cases

Use **Fire custom triggers** when DinMo should actively cause an action to happen in Voyado.

Typical examples include:

* triggering a transactional email
* sending a booking reminder
* sending an account-related notification
* starting an operational automation
* triggering a time-sensitive communication based on warehouse data

#### When not to use this destination service

Do not use this service if your main goal is to send event data to Voyado for storage, future segmentation, or later automation decisions handled entirely in Voyado.

For those use cases, use **Send interactions** instead.
