# Build your own integration

DoorOps ships native connectors only when the provider contract is verified (Joblogic, eWorks Manager, BigChange today).

For everything else, **you can integrate yourself**. That is allowed on purpose. We will not make you wait for a DoorOps-built adapter before you can move data.

## Pick a surface

| You are... | Use |
| --- | --- |
| Syncing records on a schedule | [REST API](/docs/developers/api) with an organisation API key |
| Reacting when a job, form or invoice changes | [Outbound webhooks](/docs/integrations/webhooks) |
| Driving DoorOps from Claude, ChatGPT or Grok | [Tenant MCP](/docs/developers/mcp) |
| Doing a one-off history dump | Settings → Integrations → file import |
| Using Zapier, Make or Power Automate | Webhook in, API out |

Growth is required for historical migration, webhooks, API keys and tenant MCP. Lite can still import a customer directory from a native connector so forms have names to attach to.

## A typical custom job-system bridge

1. Create an API key in **Settings → Developers** with the smallest scopes you need (`customers:read`, `jobs:write`, and so on).
2. Create customers and sites in DoorOps (or import them) so forms and jobs have parents.
3. When your other system raises a callout, `POST /api/v1/jobs` (or create the job in the UI and store the DoorOps id on your side).
4. Subscribe a webhook for `job.updated` / form events so your system sees completion without polling.
5. Verify `X-DoorOps-Signature` (HMAC) and de-duplicate on `X-DoorOps-Delivery`.

DoorOps will not delete records over the API. Archive in your own system if you need a two-way cleanup.

## Telephony and fleet without a native adapter

The API already has provider-neutral endpoints:

- `POST /api/v1/telephony/calls` with `telephony:write`
- `POST /api/v1/fleet/vehicle-locations` with `fleet:write`

Send exact DoorOps or previously migrated provider IDs in `links`. DoorOps will not guess a customer from a phone number or a vehicle from a name.

## What we will not do

- Fuzzy-match customers by name or address
- Let an agent schedule, message a customer, quote, or certify a door
- Store your other system's passwords in DoorOps so we can scrape it

If you later want a first-party connector, we still need the provider's API docs, a sandbox, and a written scope. Until then, this page is the supported path.
