Connect your Notion database and embed a living Instagram-style grid in any Notion page. About ten minutes the first time. Make a separate widget for each brand you manage.
Steps
Create a Notion integration (get your token)
Prepare your posts database
Connect the integration to your database
Copy your database ID
Create your widget
Embed it in Notion
Updating & troubleshooting
Step 1
Create a Notion integration
This gives the widget secure, read-only permission to your content.
Go to notion.so/my-integrations and click New integration.
Name it (e.g. Instagram Grid), pick your workspace, and keep the capability set to Read content only.
Submit, then copy the Internal Integration Secret — it starts with ntn_. That string is your Notion token.
Treat this token like a password. It's stored encrypted and never shown again — paste a new one anytime to replace it.
Step 2
Prepare your posts database
Each row in this Notion database becomes one tile in your grid. Use these exact property names — they're case-sensitive.
Required properties
Name — Title. Your database's title column, named “Name”. The post's title.
Publish Date — Date. Orders the grid (newest first). The grid won't load without this property.
Image Source — Select with options Link, Canva, and Image Attachment. Tells the widget where to pull each tile's image from.
Attachment — Files & media. Upload the image here (used when Image Source is Image Attachment).
Link — URL. A direct image or web link (used when Image Source is Link).
Canva Link — URL. A Canva share link (used when Image Source is Canva).
Optional properties
Content Type — Select. Add options containing Reel/Video or Carousel to badge those tiles.
Pinned — Checkbox. Pins a post to the top of the grid.
Hide — Checkbox. Hides a post from the grid.
Each tile needs an image to appear: the widget uses your Image Source choice, falling back to the Attachment, then the Link. Rows with no image (or with Hide checked) are skipped.
Highlights database (optional)
For the story-highlights row above the grid, create a second database with:
Label — Title. The highlight's name.
Image — Files & media (the cover), or Link — URL as a fallback.
Order — Number. Sets the left-to-right order.
Hide — Checkbox. Optional; hides a highlight.
Step 3
Connect the integration to your database
Creating the integration isn't enough — you must give it access to each database.
Open your posts database as a full page in Notion.
Click the ••• menu (top-right) → Connections → Connect to, and choose your integration from Step 1.
Repeat for your highlights database if you created one.
Step 4
Copy your database ID
Open the database as a full page and copy the URL.
The database ID is the 32-character string after your workspace name and before the ?v=. Example: notion.so/you/1a2b3c…(32 chars)?v=…
Copy just those 32 characters.
Step 5
Create your widget
Open your private setup link (from your purchase confirmation email) and click + New widget.
Paste your Notion token, Posts database ID, and (optionally) Highlights database ID.
Fill in the profile — brand name, bio, avatar URL, and post/follower/following counts.
Choose your layout: aspect ratio (portrait or square) and number of rows; toggle the bio header and highlights.
Click Save widget. Repeat to add a widget for each brand or account.
Step 6
Embed it in Notion
On your setup page, click Copy next to a widget to copy its embed link.
In your Notion page, type /embed and choose Embed.
Paste the link and press Embed link. Drag the edges to resize.
The grid is live: edit your Notion database and the embed reflects it automatically — no need to re-embed.
Step 7
Updating & troubleshooting
Grid empty or missing posts? Check that:
The integration is actually connected to the database (Step 3) — the most common miss.
The database ID is the 32-char ID, not the view or page URL.
Your token is current. To replace it, edit the widget and paste a new token (leave blank to keep the existing one).
Lost your setup link? It's in your purchase confirmation email — keep that email, it's how you return to manage your widgets.