Cycle's help center
LegalCompany
  • 🚀Get started
    • 🤔What is Cycle? [Start here]
    • 📥Centralize feedback
    • 💡Extract insights from feedback
    • 🌱Document features in your roadmap
    • 📡Write your release notes and close the loop
  • 💪Core concepts
    • 🏡Home
    • 📥Feedback
    • 💡Insights
    • ⛰️Roadmap
    • 🔊Releases
    • 🤩Closing the loop
    • ⚡Cycle AI
    • 📊Customer voice dashboards
  • ⚙️Setup
    • 🔌Integrations
      • Slack
      • Linear
      • Intercom
      • Zendesk
      • Salesforce
      • Gong
      • HubSpot
      • Zapier
      • Chrome extension
      • Figma, Loom, Miro & Pitch
      • Email
      • Notion
      • GitHub
      • Modjo
    • Product areas
    • 📋Views
    • 🏷️Properties
    • 👱Customers
    • 🎭Manage workspace members
    • 🔔Notifications
    • 🔀Statuses
    • ✏️Collaborative, rich markdown and AI-powered editor
    • 🔓Security
  • 🚲Advanced
    • 🎉Public changelog
    • 🤖AI & automations
    • 📹Call recording
    • 📚Content templates
    • 🏔️Advanced Roadmaps and custom views
    • ⚒️Multiple doc types
    • 🔍Search
    • 🏆Pro Cycler tips shortlist
    • ⌨️Keyboard shortcuts
  • 🔐SAML/SSO
  • 👨‍🏫Cycle University
    • 👁️Best practices for views
    • 🏎️Fast-track your onboarding
    • 🐞Bug handling with Cycle
    • 💻API
      • ⚡Webhook event for all properties changes
      • 🔗How to integrate with Jira Product Discovery
    • ❓FAQ
  • 🤔Guides
    • ⬇️Migrate your data to Cycle
      • Canny migration
    • 📖Glossary
    • Synchronise your customer data
  • How to
    • Page 1
Powered by GitBook
On this page
  • Mentioning documents
  • Installation
  • How it works
  • FAQ
  • Synchronize your Notion roadmap with Cycle
  • Prerequisites
  • Configure the Notion integration
  • Configure Cycle
  • Deploy your webhook handler

Was this helpful?

  1. Setup
  2. Integrations

Notion

Tag Notion pages inside Cycle docs

PreviousEmailNextGitHub

Last updated 5 days ago

Was this helpful?

Mentioning documents

Many modern teams use Notion as their internal knowledge base to document market analysis, competitive research, and more.

Here's how to include your company's knowledge base in your product information.

Installation

  1. Go to “Workspace settings” (or type "g" then "s")

  2. Look for the “integrations” tab

  3. Click on “Add new”, next to "Collaboration," and select Notion

  4. Login to your Notion workspace & select the page hosting the Notion pages you will want to embed in your Cycle docs.

How it works

Product teams can seamlessly mention relevant Notion docs directly inside PRDs living in Cycle next to customer feedback.

  1. Use the "/" command and search for the Notion integration.

  2. Click it or press "enter" and type the three first letters of the Notion page you want to mention in your Cycle doc.

  3. Once you mention a Notion page in Cycle, we'll add a backlink to the current Cycle doc at the bottom of the mentioned Notion page. This way, you'll always know which Cycle docs are related to your Notion pages.

Clicking a mentioned Notion page in Cycle will bring you straight to it.

Oh...almost forgot, it works both ways 😎.

Mentioning a Cycle doc in a Notion page will create a backlink to that Notion page inside the mentioned Cycle doc.

You can also embed a Cycle view inside a Notion page to share your product roadmap or a customer-specific board with other stakeholders.

FAQ

I can't find my Notion page

Make sure you include the parent page of the Notion page you're trying to find when setting up the Notion integration. If you're unsure about this, remove the integration and add it back again.

I can't find the backlink to my Cycle doc in my Notion page

Mentions of Cycle docs in Notion appear at the bottom of your Notion page. If you can't find them there, someone from your team might have removed them. To create a backlink again, open your Cycle doc and mention the Notion page again, the backlink should re-appear.

Synchronize your Notion roadmap with Cycle

Keep your Cycle and Notion roadmaps in lock-step

  • Link any Cycle doc to a Notion page and pull in its current Status

  • Listen for Status changes in Notion → automatically update the matching Cycle doc

  • Listen for Status updates in Cycle → mirror them back into Notion

Prerequisites

Cycle

  • A custom Notion URL property on your Cycle roadmap items

  • A Cycle API token with rights to read/write docs

Notion

  • A “Roadmap” database with at least two properties:

    • Status (type: Status)

    • Cycle URL (type: URL)

  • A Notion integration with a token, and the DB shared to it.

Hosting

  • A publicly reachable HTTP endpoint (we use Google Cloud Functions in the example).

Configure the Notion integration

  1. Click “+ New integration”, give it a name (e.g. “Cycle Sync”), and copy the Internal Integration Token.

  2. Share your Roadmap database

    • Open the database in Notion.

    • Click Share → Connection and select your new integration.

  3. Identify the database & property IDs

    • Via the Notion API or a tool like [notion-proxy], fetch the database schema.

    • Note down:

      • Database ID

      • “Status” property name (e.g. Status)

      • “Cycle URL” property name and its property ID (you’ll need that UUID).

Configure Cycle

  1. Create a Cycle API token

    • In Cycle, go to Settings → API and generate a new personal API key

  2. Configure Cycle Webhooks

    • In Settings → API → Webhooks, add a new webhook pointing to your HTT endpoint for:

      • Event: Value changed

      • Event: Status changed

  3. Define Notion URL attribute

    • Go to Settings → Properties

      • Add a new URL attribute named Notion URL.

      • Make sure it’s like to the type of the element you want to sync, rhis will hold the link back to the Notion page.

  4. Ensure Status property exists

    • Go to Settings → Request

      • Select the desired type

      • Check you have the Status that you’d like

Deploy your webhook handler

We’ll deploy a function that:

  • Listens for webhooks from Notion (page.properties_updated).

  • Listens for webhooks from Cycle (value.change & status.change).

  • Uses the status–ID mappings to keep them in sync.

Start by mapping the statuses

  1. Get your Notion status names: e.g. "To do", "Doing", "Done" (The exact match)

  2. Map the statuses in your favourite language

const STATUS_MAP_NOTION_TO_CYCLE = {
  'Not started': 'U3RhdHVzXzNkNGRmMzJlLWQwM2YtNDU1OC1iYjk2LTdlYzJhMWFjYTRhNg==', // To do in Cycle
  'In progress': 'U3RhdHVzXzM4YTI4ZjkxLTc3MTctNDQ3NS1hYjdiLWFjZTYwODIzNTE2ZA==', // In progress in Cycle
  Done: 'U3RhdHVzXzY3N2Y0Y2Y4LTdkNzEtNDgxNy04YmQwLTM5NWVlNTk4MWUyYg==', // Shipped in Cycle
};

const STATUS_MAP_CYCLE_TO_NOTION = {
  'U3RhdHVzXzNkNGRmMzJlLWQwM2YtNDU1OC1iYjk2LTdlYzJhMWFjYTRhNg==': 'Not started',
  'U3RhdHVzXzM4YTI4ZjkxLTc3MTctNDQ3NS1hYjdiLWFjZTYwODIzNTE2ZA==': 'In progress',
  'U3RhdHVzXzY3N2Y0Y2Y4LTdkNzEtNDgxNy04YmQwLTM5NWVlNTk4MWUyYg==': 'Done',
};
STATUS_MAP_NOTION_TO_CYCLE = {
    'Not started': 'U3RhdHVzXzNkNGRmMzJlLWQwM2YtNDU1OC1iYjk2LTdlYzJhMWFjYTRhNg==',  # To do in Cycle
    'In progress': 'U3RhdHVzXzM4YTI4ZjkxLTc3MTctNDQ3NS1hYjdiLWFjZTYwODIzNTE2ZA==',  # In progress in Cycle
    'Done':        'U3RhdHVzXzY3N2Y0Y2Y4LTdkNzEtNDgxNy04YmQwLTM5NWVlNTk4MWUyYg==',  # Shipped in Cycle
}

STATUS_MAP_CYCLE_TO_NOTION = {
    'U3RhdHVzXzNkNGRmMzJlLWQwM2YtNDU1OC1iYjk2LTdlYzJhMWFjYTRhNg==': 'Not started',
    'U3RhdHVzXzM4YTI4ZjkxLTc3MTctNDQ3NS1hYjdiLWFjZTYwODIzNTE2ZA==': 'In progress',
    'U3RhdHVzXzY3N2Y0Y2Y4LTdkNzEtNDgxNy04YmQwLTM5NWVlNTk4MWUyYg==': 'Done',
}

Setup the code on your favourite provider

Go to [Notion → Settings & members → Integrations]. (Or )

Get your Cycle statuses view , you need the IDs

It could be , , no code tool like , or else.

⚙️
🔌
here
this query
AWS Lambda
GCP Cloud Run Functions
Zapier
Make
Mention Notion pages in your Cycle docs
Embed Cycle docs in Notion