ChangelogBook a demoSign up

Sinch Campaigns

Keep Sinch audiences in step with the latest customer activity, and trigger published Sinch Campaigns to any cohort with per-recipient personalization filled from your customer data.

View Sinch Campaigns's documentation.

Supported syncing

Sync typeDescriptionSupported sync modesAPI reference
AudienceReplace the contents of an existing Sinch audience with the current rows in your Hightouch model.MirrorAudiences API
Campaign triggerTrigger an existing Sinch campaign for the contacts in your model, with optional template variables and a shoot tag.InsertSend to contacts

For more information about sync modes, refer to the sync modes docs.

Connect to Sinch Campaigns

To connect Sinch Campaigns to Hightouch you need the API key from your Sinch Campaigns console. It's a pre-encoded Basic-auth token, visible under your account settings.

  1. Go to the Destinations overview page and select Add destination.

  2. Select Sinch Campaigns from the destination catalog.

  3. Enter the following credentials, then select Continue:

    • Region: the Sinch Campaigns region your account is provisioned in. Choose European Union or United States. Sinch hosts EU and US tenants separately, so picking the wrong one fails authentication on save.
    • API key: your Sinch Campaigns API key, copied from the console. It's already base64-encoded, so Hightouch uses it directly as the Basic auth header — there's no separate secret to enter. Hightouch uses it to mint short-lived bearer tokens for the Campaigns API and JWTs for the Audiences API.

    When you select Continue, Hightouch authenticates against both the Sinch Campaigns API and the Sinch Audiences API. If only one check fails, the test-connection step calls out which API to investigate — usually an account that isn't provisioned for Audiences, or a key from the wrong region.

The single API key authorizes both APIs. The Sinch account Hightouch reads and writes audiences against is derived from the key itself, so there's nothing else to configure.

Sync configuration

Audience

Audience syncs keep a Sinch audience in lockstep with a Hightouch model. Each sync run uploads the model's current contents as a CSV and replaces the audience membership wholesale.

When you configure the sync, you can pick an existing Sinch audience or create a new one by name. Hightouch populates the existing-audience dropdown by paging through every audience in your Sinch account.

Hightouch refuses to upload a zero-row file. If the source query returns no rows, the sync errors instead of clearing the Sinch audience. Wiping an audience by accident is almost always a query bug, not the intent.

Sync mode

Audience syncs run in Mirror mode. Each run reuploads the full membership. Sinch's Audiences API doesn't expose an append or remove operation, so incremental updates aren't possible.

Configure record matching

Each row must include a phone number in E.164 format (for example, +5215512345678). Sinch identifies audience contacts by their MSISDN.

Destination fieldRequiredNotes
Phone (MSISDN, E.164)YesMapped from a column of phone type. Becomes the msisdn column in the uploaded CSV.

Map fields

Add a mapping for each extra attribute you want to attach to contacts in the audience. Each mapping becomes a column in the uploaded CSV, and the mapping name is the column header Sinch sees.

Mapping names must use lowercase letters, digits, and underscores, and must start with a letter (for example, first_name). Date values are converted to ISO 8601 before being written to the CSV.

Trigger campaigns

Campaign trigger syncs fire an existing Sinch campaign for the rows in your model. Each row becomes one recipient, and positional template variables in the campaign template are filled from the row's mappings.

Only campaigns marked ready_to_shoot in Sinch appear in the campaign dropdown. Draft, paused, or unpublished campaigns must be published in the Sinch console first.

Sync mode

Campaign trigger syncs run in Insert mode. Each batch of rows is submitted to Sinch's send-to-contacts endpoint, which returns a task identifier. Hightouch then polls /tasks/{task_id} every 5 seconds until Sinch reports the task as finished.

Hightouch sends recipients in batches of 500 with a parallelization of 1. Sinch's API rejects concurrent sends to the same campaign, so a sync to a single campaign always runs sequentially. Syncs that span multiple campaigns are still grouped per-campaign before submission.

Map fields

Destination fieldRequiredNotes
CampaignYesThe Sinch campaign to send. Pick from the dropdown (column or constant). Only campaigns marked ready_to_shoot are available.
PhoneYesSource column carrying the recipient's phone number in E.164 format. Sinch silently drops rows that don't parse.
Shoot tagNoOptional column or constant. Tags every send in this run so the results roll up together under the Sinch Shoot Stats endpoint. If omitted, Sinch generates one.

Map template variables

Sinch substitutes mapped values into the campaign template positionally. The first mapping becomes [[A]], the second becomes [[B]], and so on. Add one mapping per template placeholder, in the same order they appear in the template. The mapping name is for your reference and is not sent to Sinch.

Date values are converted to ISO 8601 before being substituted, since Sinch's templates render the raw text as-is.

Tips and troubleshooting

Validate your setup

After your first sync completes, verify the upload in Sinch:

  • Audience syncs: open the audience in the Sinch console and confirm the contact count matches the row count from your model.
  • Campaign trigger syncs: check the campaign's stats by shoot tag. If you configured a shoot tag, Sinch rolls every send from this run under it; otherwise, use the run's timestamp.

Per-row errors on campaign triggers

When Sinch reports that a send-to-contacts task failed, Hightouch can't always map the failure to specific rows — Sinch's error payload isn't consistently keyed across error types. Hightouch surfaces Sinch's full error message against every recipient in the failing batch, so the Live debugger is the most reliable place to see what went wrong.

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.

Ready to get started?

Jump right in or a book a demo. Your first destination is always free.

Book a demoSign upBook a demo

Need help?

Our team is relentlessly focused on your success. Don't hesitate to reach out!

Feature requests?

We'd love to hear your suggestions for integrations and other features.

Privacy PolicyTerms of Service

Last updated: Jul 7, 2026

On this page
  • Supported syncing
  • Connect to Sinch Campaigns
  • Sync configuration
  • Audience
  • Trigger campaigns
  • Tips and troubleshooting
  • Validate your setup
  • Per-row errors on campaign triggers
  • Common errors
  • Live debugger
  • Sync alerts

Was this page helpful?