Skip to main content
The Notion integration lets you plan, draft, and schedule LinkedIn posts inside a Notion database. When a row’s status hits your trigger value, Carousify reads the page body, schedules it for the date you set, and publishes it to the LinkedIn account you mapped — all without leaving Notion. This is the cleanest setup for teams who already do their planning in Notion: writers draft in a row, an editor flips the status, and Carousify takes it from there.
Carousify uses Notion’s official OAuth and only accesses the pages you explicitly select. We never read pages outside the database you connect.

What Carousify can access

When you authorize the integration, Notion shows the exact permissions Carousify is requesting:
  • View pages you select — read the database rows and post body text
  • Edit pages you select — update the status column when a post moves to scheduled or published
  • Create new content within pages you select — currently unused; reserved for future drafts-from-Carousify
  • View workspace users and their emails — used to attribute who scheduled what
Carousify only sees the database (and rows inside it) you tick during the OAuth step. Pages outside that selection stay invisible to us.

Before you start

You’ll need:
  • A Notion workspace where you have permission to add pages
  • A connected LinkedIn account in Carousify — see Connect your LinkedIn account
  • 5 minutes

Step 1 — Open the Connect Notion modal

In Carousify, go to Manage Workspace › Integrations in the left sidebar and click Connect on the Notion card. Carousify Connect Notion modal with Copy Notion Template, View Notion Setup Guide, and Authenticate with Notion buttons The modal has three actions:
ButtonWhat it does
Copy Notion TemplateOpens the Carousify-ready Notion template so you can duplicate it into your workspace.
View Notion Setup GuideOpens this page.
Authenticate with NotionStarts the Notion OAuth flow.
If you already have a database you want to use, skip to Step 4. Otherwise start at Step 2.

Step 2 — Copy the Notion template

Click Copy Notion Template in the Carousify modal — it opens the Carousify x Notion template in a new tab. The template is a public, read-only Notion page with a database called Carousify x Notion that has every column Carousify needs. Carousify x Notion public template with Topic, Status, Post Date, Category, Username, and Type columns In the top-right corner of the Notion page, click the Duplicate icon (the square with an arrow, just to the left of the three-dot More actions menu). Notion template top bar showing the Duplicate button next to the three-dot More actions menu Notion opens a Duplicate template modal. Pick the Notion workspace you want to add it to, then click Add to Private. Notion Duplicate template modal asking which workspace to add Carousify x Notion to After a few seconds Notion shows a Template is ready toast and the Carousify x Notion database appears in the Private section of your sidebar. Carousify x Notion database open inside the user's Notion workspace after duplication
You can rename the database, add columns, change views, or move it into any folder. Carousify only cares about the columns you map in Step 5.

Step 3 — Or use your own database

Don’t want our template? Any Notion database works as long as it has these column types:
Carousify fieldNotion column typeWhat goes in it
Posting Date/TimeDate (with time enabled)When the post should publish, in your workspace timezone.
StatusSelectDrives the workflow — see Status labels below.
UsernameTextThe LinkedIn vanity name (e.g. carousify) of the account or page to publish from.
TypeSelect or TextEither profile or pages — tells Carousify whether to post to a personal profile or a company page.
The post body lives inside the Notion page itself (open the row to write it). Column names can be anything — you’ll map them in Step 5.

Step 4 — Authenticate with Notion

Back in Carousify, click Authenticate with Notion in the same modal. Notion opens its official Connect with Carousify screen showing the requested permissions. Notion OAuth Connect with Carousify screen listing the requested permissions Click Select pages, then tick the database you want Carousify to read — Carousify x Notion if you used the template, or your own database if you built one. Notion Allow access screen with Carousify x Notion selected Click Allow access. Notion redirects you back to Carousify.
Only tick the database you actually want to publish from. Anything else you select gives Carousify read access it doesn’t need.

Step 5 — Pick the database

Carousify lands on the Select Notion Database screen with every database you authorized listed. Click the one you want to use — its tile shows a Selected badge. Carousify Select Notion Database screen with Carousify x Notion selected Click Connect to move on.

Step 6 — Map columns and define statuses

The Finalize Sync Logic screen is where you tell Carousify which Notion column means what. If you’re using our template, the values in the Column Mapping dropdowns line up 1-to-1 with the column names. Carousify Finalize Sync Logic screen with column mapping and status labels filled in

Column mapping

Carousify fieldMap to (template default)
Posting Date/TimePost Date
Status ColumnStatus
UsernameUsername
TypeType
If you built your own database, pick the matching columns from each dropdown.

Status labels

This is the workflow contract — three string values that tell Carousify what your status column should say at each stage.
FieldWhat it meansSuggested value
Trigger valueCarousify picks up the row only when Status equals this.Ready to Schedule
Status scheduledCarousify writes this back to the row once it’s queued.Scheduled
Success valueCarousify writes this back after the post publishes successfully.Published
You can use any string you want — they just need to match the options inside your Notion Status column exactly (case-sensitive). If your column has these as a Select type, make sure each value exists as an option.
Required: the Username and Type columns on every row you want to publish must be filled. Username is the LinkedIn vanity name — the bit after linkedin.com/in/ for profiles or linkedin.com/company/ for pages. Type must be exactly profile or pages (lowercase).
Post content: Carousify reads the post body straight from the body of the Notion page (open the row to edit it). Only plain text is supported — images, videos, and files embedded in the body are ignored.
Click Finish Setup. Carousify redirects you back to Integrations with Notion now showing as Active.

How posts actually publish

Once the integration is live, here’s the loop on every row:
1

You set the status to your trigger value

Pick a row, fill in Username, Type, Post Date, write the body of the page, and change Status to the trigger value (e.g. Ready to Schedule).
2

Carousify reads the row

Within a couple of minutes, Carousify pulls the row, parses the post body, and queues a scheduled post for the date and time in Post Date.
3

Carousify writes Scheduled back

The Status column updates to your Status scheduled value (e.g. Scheduled). The row also appears in the Carousify Content Calendar.
4

LinkedIn publishes at the scheduled time

At Post Date, Carousify publishes via LinkedIn’s official API.
5

Carousify writes Success back

The Status column flips to your Success value (e.g. Published). The post also shows up under Published in Carousify.
If anything goes wrong (LinkedIn auth expired, body empty, timezone confusion, missing Username), Carousify leaves the row at the trigger value and surfaces the error in the Activity Feed on your dashboard.
Keep at least a 5-minute gap between flipping the Status to your trigger value and the Post Date. Notion can take 2–3 minutes to fire its webhook to Carousify, and Carousify needs another minute or so to read the row and queue the post. If Post Date is too close to “now”, the row may be picked up after its own scheduled time and silently miss the slot.

Disconnect or reconnect

To disconnect Notion, go to Manage Workspace › Integrations and click the menu on the Notion card. Carousify revokes the Notion access token immediately and stops reading the database. The Notion data itself is untouched — your rows, statuses, and history stay where they are. To reconnect later — or to point Carousify at a different database — run through the flow again. You’ll go back through Notion’s OAuth consent and the database picker.
Re-running OAuth is also how you grant access to a different page after the fact. Notion only shows pages you ticked during the original consent, so adding a new one means going back through Allow access.

Troubleshooting

  • A row never picks up. Check that Status matches your Trigger value exactly (case-sensitive), Username and Type are both filled, and Post Date is a Date column with time enabled.
  • Post won’t schedule. Username and Type have to match — a personal profile vanity name needs Type set to profile, and a company page vanity needs Type set to pages. Mixing them (e.g. a personal vanity with pages) means Carousify can’t find a matching connected account and the post silently won’t get scheduled.
  • My images aren’t posting. Carousify reads only plain text from the Notion page body today. To attach media, schedule from inside Carousify instead — see Schedule a post.
  • The integration shows as Active but nothing syncs. Open Notion, click the database name, and make sure the Carousify integration is still in the Connections list (top-right menu › Connections). If it’s gone, reconnect from Carousify.

What’s next

Schedule a post

Schedule directly inside Carousify when you don’t need Notion in the loop.

Content Calendar

See every Notion-scheduled post alongside posts queued from Carousify itself.

Slack notifications

Get pinged when a Notion-scheduled post publishes or fails.

MCP server

Drive Carousify from Claude or VS Code when Notion isn’t enough.