> For the complete documentation index, see [llms.txt](https://docs.11x.ai/llms.txt).
> Use it to discover all available pages before exploring further.

# Webhooks and API

One API across Alice and Julian. Push data in, pull outreach and outcomes out, trigger motions from any system, and subscribe to events with webhooks.


11x exposes one API across both Alice and Julian. It is bi-directional: you push custom product, prospect, and proprietary data in, and pull outreach, transcripts, research, replies, and outcomes back out. You can trigger an 11x motion from any system — a CRM field change, a product signal, a form submission — and subscribe to webhooks for real-time automation.

<Callout kind="alert">
**The endpoint reference is not published yet.** This page covers the integration model, the patterns, and the operational practices. For the current endpoint list, authentication scheme, event catalogue, and rate limits, contact your 11x representative or email [support@11x.ai](mailto:support@11x.ai). This page will be updated when the public specification is available.
</Callout>

## What the API is for

<Columns cols={2}>
  <Card title="Push data in" icon="upload">
    Custom product usage data, proprietary prospect attributes, and enrichment your team already owns — so a digital worker can act on context 11x can't source itself.
  </Card>
  <Card title="Pull data out" icon="download">
    Outreach sent, call transcripts, research performed, replies received, qualification results, and outcomes — for your warehouse, BI, or a custom app.
  </Card>
  <Card title="Trigger motions" icon="zap">
    Start an 11x play from any system. A CRM field change, a product signal, a form submission, or a scheduled job.
  </Card>
  <Card title="Subscribe to events" icon="webhook">
    Receive a callback when something happens, so your systems react in real time instead of polling.
  </Card>
</Columns>

## When to use the API instead of a native connector

Use the native connector when one exists. Reach for the API when:

| Situation | Approach |
| --- | --- |
| You use Salesforce, HubSpot, or Pipedrive | Use the [native connector](/integrations) — no API work needed |
| You use a different CRM | API |
| You want to trigger on a product usage event | API or [Dynamic Triggers](/julian/setup) |
| You need 11x data in a warehouse | API, pulling outcomes on a schedule |
| You want to notify a system other than Slack | Webhooks |
| You have proprietary firmographic or intent data | API, pushing it in as custom attributes |

## The trigger pattern

The most common custom integration is triggering a motion from an event your own systems detect.

```mermaid
sequenceDiagram
  participant Src as Your system
  participant API as 11x API
  participant W as Alice / Julian
  participant CRM as Your CRM
  Src->>API: Event (signal, field change, form submit)
  API->>W: Start motion for this contact
  W->>W: Research, qualify, engage
  W-->>Src: Webhook: outcome
  W->>CRM: Write interaction + outcome
```

Typical triggers worth wiring up:

- A free-tier account crosses a usage threshold → start a PLG conversion play
- A support ticket indicates expansion intent → start a Julian callback
- A form submission on a high-intent page → trigger Julian for sub-60-second response
- An account's renewal date approaches → start an expansion play
- A CRM stage change to Closed Lost → queue the account for a revival play in six months

## Webhook practices

Whatever the final event catalogue looks like, these practices apply.

<Steps>
  <Step title="Return 2xx fast, process asynchronously" icon="timer">
    Acknowledge receipt immediately and do the real work in a queue. Slow handlers cause retries, and retries cause duplicates.
  </Step>
  <Step title="Make your handler idempotent" icon="copy">
    Assume any event can be delivered more than once. Key your processing on the event ID so a redelivery is a no-op.
  </Step>
  <Step title="Verify the signature" icon="shield">
    Validate the signature header before trusting a payload. An unauthenticated webhook endpoint is an open write path into your systems.
  </Step>
  <Step title="Log the raw payload" icon="file-text">
    Store what you received before parsing it. When something is wrong, the raw payload is the only reliable record.
  </Step>
  <Step title="Handle unknown fields gracefully" icon="git-branch">
    New fields get added. Your parser should ignore what it doesn't recognise rather than failing.
  </Step>
  <Step title="Alert on delivery failure" icon="bell">
    A silently broken webhook endpoint looks exactly like a quiet week of pipeline.
  </Step>
</Steps>

<Callout kind="tip">
Test your handler against a deliberately malformed payload and a duplicate delivery before you rely on it. Both will happen in production.
</Callout>

## Security

- **Treat API credentials as secrets.** Store them in a secret manager, never in source control or client-side code.
- **Scope credentials narrowly.** Separate keys for read-only reporting and write-capable automation.
- **Rotate on a schedule**, and immediately when someone with access leaves.
- **Restrict by IP** where your environment supports it.
- **Verify webhook signatures** on every request — see above.
- **Don't log full payloads containing personal data** in systems with broad access. Transcripts contain what a prospect said.

See also the [11x security overview](https://www.11x.ai/security) and the [privacy policy](https://www.11x.ai/legal/privacy-policy).

## Related capabilities

<Columns cols={2}>
  <Card title="Julian Dynamic Triggers" icon="zap" href="/julian/setup" horizontal>
    Start a call from a CRM field change or an API call.
  </Card>
  <Card title="CRM integration" icon="database" href="/integrations" horizontal>
    Native connectors, if your CRM is supported.
  </Card>
  <Card title="Slack integration" icon="message-circle" href="/integrations/slack" horizontal>
    Prebuilt notifications, no code required.
  </Card>
  <Card title="Changelog" icon="clock" href="/changelog" horizontal>
    Dynamic Triggers shipped in Episode 10.
  </Card>
</Columns>

## Still need help

For the current endpoint reference, authentication details, event catalogue, and rate limits, email [support@11x.ai](mailto:support@11x.ai) or contact your 11x representative.
