Auto-schedule your Notion social calendar to Buffer
Every Monday, Wednesday, and Friday morning, write per-platform captions, pair each Notion calendar row with a stock photo, and schedule it in Buffer.
Every Monday, Wednesday, and Friday at 9am ET, fill out and schedule the upcoming posts in my Notion social calendar.
Step 1. In Notion, query the data source for my "Social Calendar" database. Filter to rows where Status = "Needs scheduling" AND Publish Date is within the next 7 days.
Step 2. For each row, read the topic and the list of target channels (any combination of LinkedIn, Instagram, and Twitter/X).
Step 3. For each target channel, draft a platform-specific caption tuned to that channel's character limit and tone:
• LinkedIn: professional, 1 to 3 short paragraphs, up to 3000 characters.
• Instagram: visual-first and conversational, under 2200 characters, with 5 to 10 relevant hashtags.
• Twitter/X: punchy and standalone, under 280 characters, at most 1 to 2 hashtags.
Step 4. Call Pexels Search Photos for a portrait or square image that matches the row's topic. Pick the best match. Capture the photographer's name and the Pexels photo URL so it can be credited per Pexels' attribution rules ("Photo by {photographer} on Pexels").
Step 5. For each target channel on the row, call Buffer Create Post with: the platform-specific caption text (with the photographer credit appended), the Pexels image URL as the media asset, and scheduledAt set to the row's Publish Date.
Step 6. After every Buffer post for that row is created, call Notion Update a Page on the row to (a) write the returned Buffer post IDs into a "Buffer post IDs" property and (b) flip Status to "Scheduled".
Error handling: If Pexels returns no good match, retry once with a broader search term derived from the topic; if it is still empty, schedule the Buffer post as text only. If Buffer Create Post fails for any channel (e.g. daily posting limit hit, channel disconnected), write the error message into a "Last error" property on the Notion row and leave Status as "Needs scheduling" so I can retry on the next run.
Do not publish anything immediately. Every Buffer post should be created in scheduled mode at the row's Publish Date.
What does this prompt do?
- Reads the upcoming posts in your Notion social calendar that still need scheduling.
- Writes a tailored caption for each channel, with the right length and tone for LinkedIn, Instagram, and X.
- Finds a matching free stock photo from Pexels and includes the required photographer credit.
- Schedules every post in Buffer at the publish time on your Notion row, then flips the row to Scheduled.
What do I need to use this?
- A Notion workspace with a social calendar database (topic, target channels, publish date, status).
- A free Pexels account for stock photos.
- A Buffer account with your social channels (LinkedIn, Instagram, X, etc.) already connected.
How can I customize it?
- Change which days and time of day the agent runs.
- Add or remove target platforms (LinkedIn, Instagram, X, Facebook, TikTok, Threads, and more).
- Tune the tone, hashtag count, or length guidelines per platform.
- Rename or re-filter the status column (for example, only schedule rows marked Approved).
FAQs
Do I need a paid Buffer plan?
What if I do not have a Pexels account yet?
Can I review captions before they go out?
Will this work if my Notion calendar uses different column names?
What happens if Pexels has no good match for a topic?
Related templates
Open one screen each Monday to see which upcoming posts still have no image, generate three on-brand options, and file the one you pick.
See how your brand's news coverage and sentiment stack up against four competitors, then let an assistant write the weekly report for you.
Drag creators through Sourced to Wrapped on a board grouped by campaign, with audience stats on every card and a one-click brief for each creator.
Open one screen to find every unavailable, stale, or low-battery device in your smart home, see which hub is really at fault, and clear out the dead entries in bulk.
See every open model your teams run in production, who approved it, and whether a quiet license change means it needs another look.
Stop checking a dozen agency sites by hand. Open one board of live solicitations, each scored against what your team can actually bid on.
Stop hand-writing every caption in your social calendar.
Connect Notion, Pexels, and Buffer once. Geni fills your calendar with platform-specific captions and matching visuals three times a week.