SegOps AIDocs

Activations API

Create and manage activation connectors that push segment membership to external marketing and personalization platforms.

Create a Connector#

POST /api/activations/

bash
curl -X POST https://api.segops.ai/api/activations/ \
  -H "Authorization: Bearer $JWT" \
  -H "Content-Type: application/json" \
  -d '{
    "segment": 7,
    "connector_type": "klaviyo",
    "config": {
      "list_id": "AbCdEf",
      "api_key": "pk_live_..."
    }
  }'
json
{
  "id": 3,
  "segment": 7,
  "connector_type": "klaviyo",
  "config": { "list_id": "AbCdEf", "api_key": "***" },
  "status": "inactive",
  "last_synced_at": null,
  "last_error": "",
  "created_at": "2026-04-25T14:32:00Z"
}
Note
Sensitive config fields (api_key, client_secret, etc.) are always masked as “***” in API responses.

Connector Config Fields#

Klaviyo

FieldDescription
list_idKlaviyo List ID (e.g. AbCdEf)
api_keyKlaviyo Private API Key

Braze

FieldDescription
rest_endpointYour Braze REST endpoint, e.g. https://rest.iad-01.braze.com
api_keyBraze REST API Key
segment_id(Optional) Braze Segment ID

TalonOne

FieldDescription
base_urlYour TalonOne base URL, e.g. https://mycompany.talon.one
api_keyTalonOne Management API Key
audience_idTalonOne Audience ID

List Connectors#

GET /api/activations/

bash
curl https://api.segops.ai/api/activations/ \
  -H "Authorization: Bearer $JWT"

# Filter by segment:
curl "https://api.segops.ai/api/activations/?segment=7" \
  -H "Authorization: Bearer $JWT"

Activate / Pause a Connector#

PATCH /api/activations/<id>/

bash
# Activate
curl -X PATCH https://api.segops.ai/api/activations/3/ \
  -H "Authorization: Bearer $JWT" \
  -H "Content-Type: application/json" \
  -d '{ "status": "active" }'

# Pause
curl -X PATCH https://api.segops.ai/api/activations/3/ \
  -H "Authorization: Bearer $JWT" \
  -H "Content-Type: application/json" \
  -d '{ "status": "inactive" }'

Trigger an Immediate Sync#

POST /api/activations/<id>/sync/

bash
curl -X POST https://api.segops.ai/api/activations/3/sync/ \
  -H "Authorization: Bearer $JWT"

# Response:
# { "status": "queued", "user_count": 3482 }

Connector Statuses#

StatusMeaning
inactiveCreated but not enabled. No automatic syncs.
activeSyncs automatically after each segment recompute.
errorLast sync failed. Check last_error for details.

Sync Lifecycle#

  1. Segment recompute completes
  2. SegOps queries all active connectors for the segment
  3. Each connector dispatched to Celery worker (_sync_single_activation)
  4. Worker calls the connector's sync method
  5. Success: last_synced_at updated, status stays active
  6. Failure: last_error updated, status set to error