The BYOC data model
Exactly what lives in your database versus the platform’s — honestly.
#In YOUR database (BYOC D1)
When your Cloudflare account is connected, these tables live in the D1 database on your account, and the API reads/writes them there:
- CRM: contacts, companies, deals, activities, tasks
- Calendar: events
- Entity links (the relationship graph between records)
If no account is connected, the platform database serves as fallback so the product still works — connecting later provisions your database and the deterministic naming re-attaches cleanly.
#In the platform database
Projects, billing documents, documents, design systems, components, wireframes, routines, chat history and Build project files live in the platform’s database — org-scoped and reachable by your AI over MCP. Where those records reference a customer, the reference resolves against your BYOC database: the company on a project or invoice is the row in your own D1.
This split is deliberate and we’d rather describe it precisely than round it up: BYOC today means your client data and calendar physically on your account, with the platform layer working against it.
#Data residency
Your BYOC database is created in the region you choose at sign-in. Choosing the EU uses D1’s jurisdiction option — a hard, infrastructure-level guarantee, not a policy promise.