Skip to main content
Zapier integration

Connect AI Domination to 6,000+ apps with Zapier

Every event AI Domination emits is available as a Zapier trigger — audit completions, content approvals, mention alerts, trial reminders. Authenticate with one API key, pick the events you want, build the rest of the workflow in Zapier.

About AI Domination

AI Domination is the AI Visibility Operating System. It audits how brands appear in answers from ChatGPT, Perplexity, Gemini, and other AI engines, generates content optimized for those engines, and publishes it across web + social channels — all while monitoring mentions and tracking score deltas over time.

Authentication

Custom auth — Bearer API key

Customers create an API key at /settings/api-keys and paste it into Zapier. Every request uses the Authorization: Bearer header. Test endpoint:

GET https://mymilliondollarfirm.com/api/v1/companies
Authorization: Bearer aid_••••••••••

Keys are scoped to a single workspace. The auth test returns the workspace details so Zapier can label the connection.

Available triggers

All triggers are webhook-based (REST hooks in Zapier terminology). Subscribing creates a managed webhook on the workspace, posts a sample payload back to Zapier, and streams every matching event going forward.

  • Audit completed
    audit.completed
  • Audit failed
    audit.failed
  • Content generated
    content.generated
  • Content approved
    content.approved
  • Content rejected
    content.rejected
  • Content published
    content.published
  • Content publish failed
    content.publish_failed
  • A/B test winner promoted
    ab_test.winner_promoted
  • Mention alert created
    mention.alert_created
  • Subscription created
    subscription.created
  • Subscription canceled
    subscription.canceled
  • Trial ending
    trial.ending
  • Quota exceeded
    quota.exceeded
  • Team invitation accepted
    team.invitation.accepted

Available actions

Phase 2. Today the Zapier integration ships triggers only — we want every customer to be able to ingest AI Domination events into their existing stack without us touching their data. Actions (e.g. “Create company”, “Queue audit”) are on the public roadmap.

Sample request

Zapier subscribes by POSTing the target catch-hook URL to our subscribe endpoint. Unsubscribe is the same URL with the subscription id appended.

POST https://mymilliondollarfirm.com/api/v1/webhooks/subscriptions
Authorization: Bearer aid_••••••••••
Content-Type: application/json

{
  "event": "audit.completed",
  "target_url": "https://hooks.zapier.com/hooks/catch/123/abcd"
}

Sample event payloads

Every payload is flat — no nested JSON — so Zapier's mapper renders every field as a scalar in the trigger inspector. Nested values are JSON-stringified into the leaf field.

Audit completed
audit.completed
{
  "event": "audit.completed",
  "organization_id": "org_2N1xZQ",
  "organization_name": "Acme Inc",
  "occurred_at": "2026-05-16T10:42:18.000Z",
  "delivery_id": "dlv_4kfb2",
  "delivery_attempt": 1,
  "data_companyName": "Acme Inc",
  "data_companyId": "cmp_1aA",
  "data_auditId": "aud_xv9",
  "data_overallScore": 82
}
Audit failed
audit.failed
{
  "event": "audit.failed",
  "organization_id": "org_2N1xZQ",
  "organization_name": "Acme Inc",
  "occurred_at": "2026-05-16T10:42:18.000Z",
  "delivery_id": "dlv_sample",
  "delivery_attempt": 1
}
Content generated
content.generated
{
  "event": "content.generated",
  "organization_id": "org_2N1xZQ",
  "organization_name": "Acme Inc",
  "occurred_at": "2026-05-16T10:42:18.000Z",
  "delivery_id": "dlv_sample",
  "delivery_attempt": 1
}
Content approved
content.approved
{
  "event": "content.approved",
  "organization_id": "org_2N1xZQ",
  "organization_name": "Acme Inc",
  "occurred_at": "2026-05-16T10:42:18.000Z",
  "delivery_id": "dlv_sample",
  "delivery_attempt": 1
}
Content rejected
content.rejected
{
  "event": "content.rejected",
  "organization_id": "org_2N1xZQ",
  "organization_name": "Acme Inc",
  "occurred_at": "2026-05-16T10:42:18.000Z",
  "delivery_id": "dlv_sample",
  "delivery_attempt": 1
}
Content published
content.published
{
  "event": "content.published",
  "organization_id": "org_2N1xZQ",
  "organization_name": "Acme Inc",
  "occurred_at": "2026-05-16T10:42:18.000Z",
  "delivery_id": "dlv_8z2k1",
  "delivery_attempt": 1,
  "data_title": "5 ways AI engines rank pages",
  "data_type": "BLOG_POST",
  "data_destination": "wordpress",
  "data_externalUrl": "https://acme.example.com/blog/ai-ranking"
}
Content publish failed
content.publish_failed
{
  "event": "content.publish_failed",
  "organization_id": "org_2N1xZQ",
  "organization_name": "Acme Inc",
  "occurred_at": "2026-05-16T10:42:18.000Z",
  "delivery_id": "dlv_sample",
  "delivery_attempt": 1
}
A/B test winner promoted
ab_test.winner_promoted
{
  "event": "ab_test.winner_promoted",
  "organization_id": "org_2N1xZQ",
  "organization_name": "Acme Inc",
  "occurred_at": "2026-05-16T10:42:18.000Z",
  "delivery_id": "dlv_sample",
  "delivery_attempt": 1
}
Mention alert created
mention.alert_created
{
  "event": "mention.alert_created",
  "organization_id": "org_2N1xZQ",
  "organization_name": "Acme Inc",
  "occurred_at": "2026-05-16T10:42:18.000Z",
  "delivery_id": "dlv_sample",
  "delivery_attempt": 1
}
Subscription created
subscription.created
{
  "event": "subscription.created",
  "organization_id": "org_2N1xZQ",
  "organization_name": "Acme Inc",
  "occurred_at": "2026-05-16T10:42:18.000Z",
  "delivery_id": "dlv_sample",
  "delivery_attempt": 1
}
Subscription canceled
subscription.canceled
{
  "event": "subscription.canceled",
  "organization_id": "org_2N1xZQ",
  "organization_name": "Acme Inc",
  "occurred_at": "2026-05-16T10:42:18.000Z",
  "delivery_id": "dlv_sample",
  "delivery_attempt": 1
}
Trial ending
trial.ending
{
  "event": "trial.ending",
  "organization_id": "org_2N1xZQ",
  "organization_name": "Acme Inc",
  "occurred_at": "2026-05-16T10:42:18.000Z",
  "delivery_id": "dlv_e21pq",
  "delivery_attempt": 1,
  "data_daysRemaining": 3,
  "data_tier": "DOMINATION"
}
Quota exceeded
quota.exceeded
{
  "event": "quota.exceeded",
  "organization_id": "org_2N1xZQ",
  "organization_name": "Acme Inc",
  "occurred_at": "2026-05-16T10:42:18.000Z",
  "delivery_id": "dlv_sample",
  "delivery_attempt": 1
}
Team invitation accepted
team.invitation.accepted
{
  "event": "team.invitation.accepted",
  "organization_id": "org_2N1xZQ",
  "organization_name": "Acme Inc",
  "occurred_at": "2026-05-16T10:42:18.000Z",
  "delivery_id": "dlv_sample",
  "delivery_attempt": 1
}

Platform manifest

The Zapier CLI manifest is published at /zapier-platform.json. Use it as the starting point for the platform integration repo (the actual Zapier app code lives in a separate repo that publishes through zapier push).

Ready to wire it up?

Start a free trial, then create an API key from your settings page. Paste it into Zapier and you’re done.

Zapier integration · AI Domination · AI Domination