Activate your full customer dataset for SMS and WhatsApp campaigns. Keep contacts and audience lists in Sinch MessageMedia in sync with the data your marketing team relies on, so every send is targeted at the right people with the right context.
Supported syncing
| Sync type | Description | Supported sync modes | API reference |
|---|---|---|---|
| Contacts | Upsert contact records (phone numbers and attributes) into Sinch's contact directory. | Upsert | Contacts API |
| Contact lists | Sync Hightouch audiences into long-lived Sinch contact lists. | Add, Remove | Contact lists API |
For more information about sync modes, refer to the sync modes docs.
Connect to Sinch MessageMedia
To connect Sinch MessageMedia to Hightouch you need an API key and API secret from your Sinch HUB account. Hightouch authenticates each request with HTTP Basic auth.
-
Go to the Destinations overview page and select Add destination.
-
Select Sinch MessageMedia from the destination catalog.
-
Enter the following credentials, then select Continue:
- API key: the API key from your Sinch HUB account.
- API secret: the API secret from your Sinch HUB account.
The destination targets the Sinch MessageMedia HUB Contacts API
(api.messagemedia.com). It does not currently authenticate against the Sinch
CEP Campaigns API hosts.
Sync configuration
Sync contacts
Upsert contact records into your Sinch contact directory. Each row in your model becomes a contact identified by phone number.
Sync mode
Contacts syncs run in Upsert mode. Hightouch creates new contacts that aren't already in Sinch and updates existing contacts when fields change.
Sinch's HUB API returns a 409 conflict if a contact's phone number or alias is already in use by a different record. Hightouch surfaces these conflicts as rejected rows in the Live debugger rather than aborting the sync.
Record matching
Map a model column to Phone number (msisdn). Sinch matches contacts by phone number, in international format (+E.164).
Channel configuration
Sinch contacts each have one or more channels. Hightouch sends the mapped phone number on every row's primary channel using the type and subscription state configured here:
| Field | Description |
|---|---|
| Channel type | The channel to associate with the phone number. Choose SMS (default) or WHATSAPP. Sinch's account-level validator rejects other values. |
| Default subscription state | The subscription state applied when a new contact is created. Choose SUBSCRIBED (default) or UNSUBSCRIBED. |
Field mapping
Map source columns to Sinch's standard contact fields:
| Destination field | Type | Notes |
|---|---|---|
| First name | string | |
| Last name | string | |
| Alias | string | Must be unique across your Sinch account. Duplicate aliases return 409. |
| Date of birth | date | |
| Country | string | |
| State | string | |
| Location | string | |
| Note | string |
To send fields that aren't in this list, configure them as Custom fields below.
Custom fields
Map model columns to custom fields configured in your Sinch HUB account. Hightouch fetches your account's custom field definitions and shows them in the dropdown — you map a source column to a specific Sinch custom field UUID.
Create the custom fields in Sinch HUB before configuring the mapping. Hightouch only lists custom fields that already exist in your account.
Sync contact lists
Sync a Hightouch audience into a long-lived Sinch contact list. Best for reusable, consented populations that drive recurring campaigns.
Contact list syncs require contacts to already exist in Sinch and to be referenced by their Sinch UUID. Run the Contacts sync first, write the returned UUIDs back to your warehouse, and then configure the contact list sync against the UUID column. Mapping by phone number is not supported because Sinch's HUB API does not currently let Hightouch look up a UUID from a phone number.
Choose a contact list
Select an existing Sinch contact list, or create a new one from the sync configuration form. Hightouch fetches your account's contact lists and lets you pick one.
Record matching
Map a model column containing Sinch contact UUIDs to Contact UUID (contact_id). Each row must contain a UUID that Sinch already knows about — populate this column from the IDs returned by the Contacts sync.
Delete behavior
Choose how Hightouch treats rows that leave your audience query results:
| Behavior | Description |
|---|---|
| Do nothing (default) | Leave the contact's list membership unchanged. |
| Remove from list | Remove the contact from the Sinch contact list. The contact itself is not deleted from Sinch's contact directory. |
Tips and troubleshooting
Validate your setup
After your first sync completes:
- Open your Sinch HUB account and search the contact directory for one of the phone numbers you synced. Confirm that the contact appears with the expected channel type, subscription state, and mapped fields.
- For contact list syncs, open the target list in Sinch HUB and confirm the expected contacts are members.
- Check the Live debugger for rejected rows. The most common rejections on contact syncs are 409 conflicts caused by duplicate aliases or phone numbers already attached to a different contact.
Recommended workflow
- Build a Contacts sync that upserts phone numbers and attributes into Sinch. Capture the returned Sinch UUIDs back to your warehouse.
- Build a Contact lists sync that uses those UUIDs as the record-matching identifier to drive list membership from your audiences.
Common errors
To date, our customers haven't experienced any errors while using this destination. If you run into any issues, please don't hesitate to . We're here to help.
Live debugger
Hightouch provides complete visibility into the API calls made during each of your sync runs. We recommend reading our article on debugging tips and tricks to learn more.
Sync alerts
Hightouch can alert you of sync issues via Slack, PagerDuty, SMS, or email. For details, please visit our article on alerting.
