Client approval desk for your Facebook Page content calendar

Stop chasing sign off in email threads. Reviewers approve posts in one place, and approving is what schedules them on your Facebook Page.

App
Facebook PagesNotionSlack BotMarketingOperationsContent GenerationData SyncNotifications & Alerts
PromptCreate

Build me an approval desk where our client or marketing lead signs off on Facebook Page posts before anything goes live, so approvals stop happening in email threads. Our content calendar lives in a Notion database, and the rule the whole app enforces is that approving a post is what schedules it: there is no other path from draft to the Page, so nothing can be published without a recorded approval.

Read the calendar from Notion with Query a Data Source. Let me configure the data source id and map my own column names for post copy, link, image, intended publish date, owner, reviewer and status, rather than hardcoding a schema, because every content calendar is laid out differently. Cache the mapping so I only set it up once. Use Query a Data Source rather than the deprecated Query a Database operation, and remember Notion requires a version header on every call.

The main view is a review board. Each planned post is a card showing the copy in full, the link, an image thumbnail if there is one, the intended publish date and the owner. Group the cards into four columns: Needs review, Approved, Scheduled and Published. Derive the grouping from the Notion status column plus whether the app has actually scheduled the post on the Page yet, so Approved and Scheduled are genuinely different states: Approved means a person said yes, Scheduled means the post now exists on the Page with a future publish time.

Add a waiting on you filter so each reviewer sees only their own queue. Match the signed in viewer against the reviewer column on each row, and if their identity is not mapped let them pick who they are from a list and remember it. The filter should be the default view for anyone whose name appears as a reviewer, because a client opening this app wants their five cards, not the whole calendar.

Every card carries three decisions: Approve, Request changes and Reject. All three write straight back to the Notion row with Update a Page, recording the new status, the reviewer name, the timestamp and any comment the reviewer typed. Require a comment on Request changes and Reject, since a bare no is useless to the person who has to fix the draft. Keep Notion as the status of record so the calendar stays the single source of truth even for people who never open this app.

Approving also schedules the post. Fetch the managed Pages with List Pages and use that Page's own access token for every Page write, since Page endpoints reject the plain user token. For a post with an image, first send the image through Upload Page Photo held unpublished, then create the post with Create Page Post attaching that photo, set as unpublished with a future publish time. Text and link posts skip straight to Create Page Post. Facebook only accepts scheduled times inside a minimum and maximum window ahead of now, so validate the intended date before saving and show the reviewer a clear message if the slot is too soon or too far out, instead of letting the approval succeed and the scheduling fail silently. Write the resulting post id back to the Notion row so the card knows what it created.

The second view is a two week planner that puts the live scheduled queue from the Page next to the plan. Pull what is really queued with List Scheduled Posts and lay it against the next fourteen days of Notion rows on the same timeline, one row per day. Make two things obvious at a glance: days with nothing scheduled, and days with more than one post going out. This exists because Meta's own planner is slow to load across wide date ranges, so this view has to answer where are the gaps in one screen.

From the planner I can fix the schedule without opening Meta Business Suite. Let me move a scheduled post to a new time with Update Post, and cancel one outright with Delete Post. Both actions update the Notion row too, so the plan and the live queue never drift apart. If the Page will not accept a change to the publish time on an existing scheduled post, fall back to cancelling it and creating a replacement at the new time, and keep the card history continuous across that swap so it still reads as one post being moved.

When a draft is approved or sent back, post a note in Slack to the post owner using Send a Message, including the decision, the reviewer, any comment and a link back to the card in this app. Resolve the owner to a Slack account with Look Up User by Email from the owner column, and if there is no match fall back to a review channel I configure so the note is never silently dropped.

Keep a visible history on every card: each decision, who made it, when, and what they said, oldest to newest, plus the scheduling events so I can see that a post was approved on Tuesday, scheduled for Friday, moved to Monday and then published. That history is what people go looking for when a client asks whether they ever signed off on something.

Handle the ordinary failures visibly rather than quietly. If a Page write is rejected for a missing permission or an expired token, if Notion returns a page the connection cannot see, or if a scheduled time is refused, surface it on the card with the reason and leave the row in a state I can retry from. An approval that failed to schedule must never be shown as Scheduled.

What does this prompt do?

  • Reads your content calendar from Notion and shows every planned post as a card with the copy, link, image and intended publish date, grouped into Needs review, Approved, Scheduled and Published.
  • Gives each reviewer a waiting on you filter so a client or marketing lead opens the app and sees only their own queue.
  • Approve, Request changes and Reject write the decision, the reviewer name and any comments straight back to the Notion row, and approving is what actually schedules the post on your Facebook Page, so nothing goes live without a recorded sign off.
  • A two week planner puts what is already scheduled on the Page next to what is planned so you can spot empty days and double bookings, then reschedule or cancel without opening Meta Business Suite.
  • Posts a note in Slack to the post owner whenever a draft is approved or sent back, and keeps a visible history on each card of who decided what and when.

What do I need to use this?

  • A Facebook Page you manage, connected with permission to publish and manage posts
  • A Notion workspace containing your content calendar, shared with the connection so the app can read and update it
  • A Slack workspace for approval notifications
  • A calendar where each planned post has its copy, any link or image, an intended publish date, an owner and a reviewer

How can I customize it?

  • Rename the review stages or map them onto the status values your calendar already uses
  • Change who reviews what, so a client only ever sees their own brand's posts in the waiting on you queue
  • Adjust how far ahead the planner looks, or send the Slack notes to a shared channel instead of a direct message

FAQs

Can a post go live without being approved?
No. The app is the only thing that schedules posts, and it only does so after someone records an approval. Nothing reaches the Page until a reviewer has signed off, and the approval is written back to your calendar so there is always a record of who approved it.
Does my client need a Facebook or Meta Business Suite login?
No. Reviewers work entirely inside the app, which is the point of it. Only the Page account you connect once needs publishing access, so you are not handing out seats in Meta Business Suite just to collect a yes or no.
Will this work with the Notion content calendar we already have?
Yes. You point the app at your existing calendar and match your own columns for copy, link, image, publish date, owner, reviewer and status. Decisions are written back into those same rows, so Notion stays the single source of truth.
What if we need to change the date after a post is approved?
The planner view lets you move an approved post to a new time or cancel it outright, right up until it publishes. Both actions update the Page and your calendar together, so the plan and the live queue do not drift apart.
Does it handle posts with images?
Yes. For a post with an image the app uploads the photo to your Page first and attaches it to the scheduled post, so image posts and text or link posts go through the same approval path.
How far ahead can we schedule a post?
Facebook only accepts scheduled times inside a set window ahead of the current time, so the app checks the date before saving and tells the reviewer if the chosen slot is too soon or too far out, rather than failing silently after approval.

Related templates

Share of voice dashboard for your brand and competitors

See how your brand's news coverage and sentiment stack up against four competitors, then let an assistant write the weekly report for you.

GDELT
Notion
Slack Bot
App
Approval war room for every social post awaiting sign-off

One screen showing every social post waiting on approval, sorted by deadline, so reviewers can approve or reject without leaving the page.

Hootsuite
Slack Bot
App
Turn champion job changes into new pipeline in Attio

Every Monday, find the past champions and closed-won contacts who changed jobs, update Attio, and get the moves worth chasing in Slack.

Boomerang
Attio
Slack Bot
Agentic Task
Collect social post requests and schedule them in Hootsuite

Staff submit what happened, your social manager edits the copy, picks the accounts and puts it on the calendar without a single spreadsheet.

Hootsuite
Slack Bot
General Input Database
App
Influencer campaign roster board with AI creator briefs

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.

HypeAuditor
Google Sheets
Notion
App
Smart home entity health cockpit for Home Assistant

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.

Home Assistant
Notion
App

Stop chasing post approvals in email threads.

Give your client or marketing lead one place to review, approve and schedule Facebook Page posts, with every decision on record.