The snag
Product and design read Notion, but operations run in Zivvy — nobody has a single source of truth on delivery.
How Zivvy helps
Sync /v1/projects and /v1/tasks into a Notion database with two-way updates and status roll-ups.
Before Zivvy
Handoffs go missing, owners are unclear, audits get painful.
What you get
- /v1/projects + /v1/tasks mirrored into Notion DB
- Two-way updates on assignee, status, due date
- Rollups back to Zivvy for weekly reporting
Workflow stream
New /v1/projects → Notion row created
Common uses
01
New /v1/projects → Notion row created
02
Notion status change → PATCH /v1/tasks
03
Zivvy tasks.overdue → Notion callout on the parent page
Integration code
Open API referenceFetch tasks for Notion sync
curl "https://integrate.zivvy.xyz/v1/tasks?project=PROJ-2026-0007" \
-H "Authorization: Bearer $ZIVVY_API_KEY"Upsert into Notion
import { Client } from "@notionhq/client";
import { zivvy } from "./zivvy-client";
const notion = new Client({ auth: process.env.NOTION_TOKEN });
export async function sync(projectName) {
const tasks = await zivvy.tasks.list({ project: projectName });
for (const t of tasks) {
await notion.pages.create({
parent: { database_id: process.env.NOTION_DB },
properties: {
Name: { title: [{ text: { content: t.subject } }] },
Status: { select: { name: t.status } },
Owner: { people: [] },
Due: t.due_date ? { date: { start: t.due_date } } : undefined
}
});
}
}API endpoints
GET /v1/projectsPOST /v1/projectsPATCH /v1/tasks/{name}POST /v1/webhook-subscriptions
Events emitted
HMAC-SHA256 signed webhooks, retried for 24 hours.
- projects.created
- tasks.created
- tasks.updated
- tasks.completed
0
free seats forever
0
card required to start
1
workspace for the workflow
Questions
Ready to try it?
Free plan. Two seats. No card.