# Connections & API keys

> The CRM Connections tab: create API keys (crk_…) that let any website form or external system post leads straight into a chosen table, board and column — and why a bk_ workspace key is not one of them.

The **Connections** tab connects the CRM to the rest of the world: it issues API keys that outside systems use to write leads in. Your web agency's landing page, a partner's site, a Zapier step, your own backend — anything that can POST JSON can file a deal.

## How it works

1. **Create a key** — CRM → **Connections** → New key. Name it after the source ("Landing page — spring promo").
2. **Pick the destination** — Each key targets a board and a column — "send this source's leads to *New requests*". Different sources can land in different columns.
3. **Send it** — The key (`crk_…`) is shown once. The caller POSTs form fields to `/crm/ingest` with it — see the [CRM ingest API](/docs/api/crm-ingest) for the exact contract.

> **A CONNECTIONS KEY IS NOT A WORKSPACE API KEY:** `/crm/ingest` accepts **only** a Connections key (`crk_…`). A workspace/agent API key (`bk_live_…`, `bk_test_…`) authenticates the REST, chat and [MCP](/docs/mcp/server) surfaces — a different credential family entirely. Send one here and you get `401 unauthenticated — "That API key does not exist"`, which reads like a typo but means you brought the wrong kind of key.

## One service, many CRMs

A CRM service is a container, not a single database. It holds as many **tables** (the rows) and **boards** (the pipelines those rows appear on as cards) as you need — leads, applicants and support requests can each have their own, side by side in one service.

A Connections key points at exactly one table via `database_id`, and optionally at a board column, so each source lands where it belongs. Over MCP that whole chain is `create_crm_table` → `create_crm_board` → `create_crm_api_key`; the [tool reference](/docs/mcp/tools) has the arguments.

## What a submission becomes

- A **row** in the CRM table, fields matched to your CRM fields by key or label.
- A **card** in the key's target column.
- An **attribution record** naming the key — the deal knows which website sent it.
- A ***form submitted* trigger** — so the [speed-to-lead recipe](/docs/workflows/recipes) covers external forms too.

> **KEYS ARE CREDENTIALS:** A leaked key lets anyone spam your board (writes only — keys can't read). Revoke from the Connections tab; requests are rate-limited and invalid keys get 401/403.
