Push approved Notion calendar rows into Agorapulse drafts
Approve a post in your Notion content calendar and it becomes a scheduled Agorapulse draft within half an hour, with no copy pasting.
Every 30 minutes, check my Notion content calendar for social posts my team has approved but has not yet handed off to Agorapulse, create an Agorapulse draft for each one, and immediately mark the Notion row as scheduled so the same post can never be pushed twice.
Read the calendar with Notion's Query a Data Source operation against my content calendar database. Filter for rows where the Status property equals Approved and the Agorapulse draft link property is still empty. Both conditions must hold. That empty draft link is the idempotency guard, so never act on a row that already has one.
For each matching row, read the caption text, the target social profiles and the scheduled publish date and time. Validate the row before doing anything else: if the caption is missing or the publish date is missing, skip that row entirely and leave its Status untouched at Approved so a human notices it sitting there and fixes it. Do not write anything back to a skipped row, and do not let one bad row fail the rest of the run.
To create the draft, first resolve the Agorapulse account structure: call Get Manager Organizations for the organization id, Get Organization Workspaces for the workspace id, and Get Workspace Profiles to list the connected social profiles. Agorapulse addresses profiles by opaque uid, so match the profile names stored on the Notion row to their profile uids. Resolve this once per run and reuse it across rows rather than repeating the lookup for every row.
Then call Agorapulse's Create Simple Draft operation with the row's caption as the post text, the matched profile uids as the targets, and the row's publish date and time as the scheduled send time. Create exactly one draft per Notion row.
Immediately after each individual draft is created successfully, update that specific Notion page with Update a Page: set Status to Scheduled and write the returned Agorapulse draft reference into the draft link property. Do this per row, right after its create call, never batched at the end of the run. If a draft is created but the writeback fails, surface that loudly, because that row would otherwise be picked up again on the next run and produce a duplicate draft.
Keep the run efficient and bounded. Agorapulse allows 500 requests per 30 minutes, which is the same window as the schedule, so process a sensible number of rows per run rather than an unbounded backlog in one pass.
Do not post to any social network directly, do not send notifications, and do not create records anywhere else. The Notion board is the single source of truth, and scheduled Agorapulse drafts are the only output, so final review still happens inside Agorapulse.
What does this prompt do?
- Checks your Notion content calendar every 30 minutes for posts marked Approved that have not been handed off to Agorapulse yet.
- Creates a matching draft in Agorapulse using the caption, the target social profiles and the publish date and time already on the row.
- Writes the draft reference back to Notion and flips the row to Scheduled, so the same post can never be pushed twice.
- Leaves rows with a missing caption or missing publish date untouched, so someone on your team can spot and fix them.
What do I need to use this?
- A Notion content calendar database with a status property, a caption field, a target profiles field, a publish date field, and an empty field to hold the Agorapulse draft reference.
- A Notion account, with that content calendar shared with General Input.
- An Agorapulse account on a plan that includes API access, with your social profiles already connected.
How can I customize it?
- Change how often it runs. Every 30 minutes suits a busy calendar, while hourly or twice a day is plenty for most teams.
- Rename the statuses. Approved and Scheduled are just defaults, so use whatever your board already calls them.
- Add extra filters, such as only pushing rows for a specific campaign, brand or content owner.
FAQs
Could this ever schedule the same post twice?
Does this publish straight to social media?
What happens if someone forgets the caption or the publish date?
Do I have to plan content in Notion?
Does this work on any Agorapulse plan?
Related templates
Twice every weekday, the conversations from your social inbox land on the right HubSpot contact timelines, with a Slack recap for sales.
Every Monday, last week's survey answers and support conversations become one themed report in Notion, with the top five themes posted to Slack.
Every Tuesday we pull your best new reviews, draft social captions, email testimonials and product page quotes, then stage them in Notion for approval.
Each weekday morning, turn yesterday's major incidents into ready-to-review postmortem drafts in Statuspage, Notion, and Jira.
Every time someone edits your Tailscale access rules, get a readable summary of what changed, who changed it, and whether it made you less safe.
On the first of each month, your video library becomes a written review of what worked, what flopped, and three things to change next month.
Stop copy pasting captions every afternoon.
Approve the post once in Notion and let the scheduled draft appear in Agorapulse on its own.