Outbound Campaign 409 Conflict on Contact Import

Why does the /api/v2/outbound/contacts endpoint returns a 409 Conflict when importing contacts with identical external IDs across different partitions?

The payload validates correctly against the schema, and the OAuth token has full outbound permissions. We see this consistently with batch sizes over 500 records.

Take a look at at the contact list configuration in Terraform. The 409 usually means the external_id is marked as unique across the whole tenant, not just the partition. Check your genesyscloud_outbound_contactlist resource settings.

{
“external_id_unique”: true
}

resource “genesyscloud_outbound_contactlist” “my_contact_list” {
name = “Migrated Contacts”
description = “Contacts migrated from Zendesk”
external_id_unique = false
}

That Terraform setting is exactly where the issue lives. When `external_id_unique` is set to `true`, Genesys Cloud enforces a global unique constraint on that field across the entire tenant. This is a much stricter validation than what we’re used to in Zendesk, where duplicate external IDs might just be flagged as warnings or handled by specific ticket routing rules depending on the view configuration. In Genesys Cloud Outbound, this uniqueness check happens before the partition logic is even applied, which is why you’re seeing the 409 Conflict despite the contacts being in different partitions.

To fix this, you need to update your `genesyscloud_outbound_contactlist` resource in Terraform to set `external_id_unique` to `false`. This allows the same external ID to exist in multiple contact lists or partitions, which is often necessary when migrating legacy data where ID reuse was common.

Here is the corrected snippet:



After applying this change, you’ll need to clear any existing contacts with conflicting IDs before re-running the import, or the system will still throw conflicts for the records that were already created with the strict constraint. It’s a bit more rigid than Zendesk’s approach, but it prevents accidental data merges in outbound campaigns.

- Verify the `external_id_unique` flag in your Terraform state.
- Check for existing duplicate records before re-importing.
- Review partition assignment logic in the import payload.
- Compare Zendesk’s duplicate handling vs. Genesys Cloud’s strict constraints.