Integrations

Notion

Mirror Zivvy Projects and Tasks into a Notion database for cross-team visibility.

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.

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

  1. 01

    New /v1/projects → Notion row created

  2. 02

    Notion status change → PATCH /v1/tasks

  3. 03

    Zivvy tasks.overdue → Notion callout on the parent page

Integration code

Open API reference

Fetch 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.