CRM Pipeline
Companies, people and deals: related databases with a board and a pipeline chart.
Twelve database automations and button chains, documented and copy-pasteable.
Exactly what Notion Arena sends to Notion, in order. Notion's data-source model forces two passes: relations, rollups and the formulas that read them need data_source_ids that only exist once the databases do.
/v1/pagesCreate the “automation-starter” container page under the page you chose
/v1/databasesCreate the “Tasks” database with 12 base properties
/v1/databases/{tasks_database_id}Read back Tasks to get its default data source id
/v1/data_sources/{tasks_data_source_id}Add 3 deferred properties to Tasks: relations (with resolved data_source_ids), then the rollups and formulas that read them
/v1/databasesCreate the “Inbox” database with 6 base properties
/v1/databases/{inbox_database_id}Read back Inbox to get its default data source id
/v1/data_sources/{inbox_data_source_id}Add 1 deferred properties to Inbox: relations (with resolved data_source_ids), then the rollups and formulas that read them
/v1/viewsCreate the “Board” board view on tasks
/v1/viewsCreate the “Today” list view on tasks
/v1/viewsCreate the “Overdue” table view on tasks
/v1/viewsCreate the “Waiting too long” table view on tasks
/v1/viewsCreate the “Completed per week” chart view on tasks
/v1/viewsCreate the “Untriaged” table view on inbox
/v1/pagesSeed 3 rows into Tasks so the views are not empty on first open (one request per row; Notion has no bulk insert)
/v1/pagesSeed 1 rows into Inbox so the views are not empty on first open (one request per row; Notion has no bulk insert)
/v1/pagesCreate the “Automation playbook” page
/v1/blocks/{automation_playbook_page_id}/childrenAppend 39 blocks of page body
3 steps cannot be scripted: All eight automations above; All six buttons; Three recurring templates.
curl -X POST https://notionarena.vercel.app/api/install \
-H 'content-type: application/json' \
-d '{
"component": "automation-starter",
"mode": "plan"
}'
# add "token" and "parentPageId" and switch to "mode": "api" to install for realThe real property schemas, not a description of them. Every formula below is a Notion Formula 2.0 expression you can paste into a property by hand if you would rather not use the API at all.
ref: tasksn/aInbox → Today → Doing → Waiting +1n/an/aP1 · P2 · P3deep · admin · client · personaln/an/an/an/an/aif(and(not(empty(prop("Started at"))), not(empty(prop("Finished at")))), dateBetween(prop("Finished at"), prop("Started at"), "hours"), 0)if(and(not(empty(prop("Due"))), prop("Due") < now(), prop("Status") != "Done"), true, false)if(prop("Status") == "Waiting", dateBetween(now(), prop("Last edited"), "days"), 0)n/aref: inboxn/aEmail · Slack · Form · Manualn/an/an/an/a→ tasks (two-way)Created through POST /v1/views, which shipped in March 2026 and is the reason provisioning a workspace from code finally works end to end.
on tasks
on tasks
filter: {"property":"Status","status":{"equals":"Today"}}…
on tasks
filter: {"property":"Is overdue","checkbox":{"equals":true}}…
on tasks
filter: {"property":"Days waiting","number":{"greater_than":3}}…
on tasks
filter: {"property":"Status","status":{"equals":"Done"}}…
on inbox
filter: {"property":"Triaged","checkbox":{"equals":false}}…
Appended with real block types (headings, toggles, callouts, to-dos, column lists) in chunks of 100, the Append block children limit.
| Button | Where | Actions in order |
| Start day | Home page | Open Today view · add a blank Inbox row · show today's date |
| End day | Home page | Move every Doing task to Today · add a “What did you finish?” Inbox row |
| Weekly reset | Home page | Move Done tasks to Archive · clear Snoozed until on all tasks |
| Escalate | Tasks | Priority = P1 · Due = Today · Slack #ops |
| Snooze 3 days | Tasks | Snoozed until = +3 days · Status = Inbox |
| Mark done | Tasks | Status = Done · Finished at = Today · confetti |
Every recipe ships with its manual steps written out, because pretending the API covers everything is how people end up with a half-built workspace. These are real Notion limitations, quoted from the API reference.
Database automations have no public API surface. They are configured per-database in the Notion app under ••• → Automations.
Button properties are response-only in the Notion API: the schema is returned on read, but the API ignores button settings on write and cannot create a button or configure its actions.
Recurring database templates (daily/weekly/monthly) are configured in the app on the template's ••• menu; the API can create pages from a template but cannot schedule recurrence.
Buttons and database automations cannot be created through the Notion API: they are configured in the app. This recipe installs the databases they act on, then hands you an exact click-path for each automation: trigger, conditions, actions. Twelve of them, covering the workflows people most often rebuild by hand.
Companies, people and deals: related databases with a board and a pipeline chart.
Epics, stories and sprints with a velocity chart and a burndown-ready schema.
Objectives, key results and confidence, rolled up to a company score.