Social post approval board that pushes to Agorapulse

By General Input

Write, review and sign off social posts in one place, then send only approved copy to Agorapulse with the approver on record.

Integrations

  • Agorapulse
  • Slack Bot

Type

App

Categories

  • Marketing
  • Operations

Build me a social post review board that my team works out of, replacing the spreadsheet and email chain we use today for client sign off. The board has four columns: Draft, Internal review, Client approved and Scheduled. Cards move left to right, and the app itself is the source of truth for everything before publishing: copy, images, versions, comments and approval state. Only at the very end does an approved card get pushed into Agorapulse.

A card is one planned post. On the card a writer composes the copy, picks the social profiles to publish to, and sets an intended publish time. Load the profile picker from Get Workspace Profiles, and also load List Workspace Menu Groups so the writer can pick a whole profile folder at once instead of ticking profiles one by one. Show the network for each profile next to its name, since the copy and the image rules differ per network.

Images attach through the three step upload flow. Call Create Media Upload Slot to get a presigned upload URL, PUT the file bytes straight to that URL, and do not send the X-API-KEY header on that PUT because the presigned URL points at Amazon S3 rather than the Agorapulse API. Then poll Get Media Status until it reaches a terminal state and surface the per network compatibility it returns, so the writer can confirm the image is actually usable on every network the card targets before the card advances. If an upload slot has expired the API returns 410, so request a fresh slot and retry rather than failing the card.

Approval is the point of the app, so model approvers as roles rather than one generic approve button. A card names who it is waiting on, for example an editor, an account manager, a client contact or a legal reviewer. Each approver gets a filtered view showing only the cards currently waiting on them, and from that view they can either approve the card or send it back to Draft with a comment that is required rather than optional. Sending back should always explain why.

Every card keeps its full comment thread and its version history inside the app. Each edit to the copy creates a new version stamped with the author and time, and an approval records the exact version that was approved. If the copy changes after sign off, the card returns to review instead of carrying the stale approval forward, because the failure we are trying to prevent is the wrong version getting scheduled.

When a card reaches Client approved, a Schedule action creates the post in Agorapulse with Create Simple Draft (Legacy), sending the approved copy, the uploaded media and the intended publish time across all the selected profiles in one call. On success, store whatever identifiers come back on the card, move the card to Scheduled, and lock the copy from further editing so the board keeps matching what was actually sent.

Never let a card reach Agorapulse without a recorded approver and an approval timestamp. Disable the Schedule action while either is missing, show the approver name, role and approval time on the card, and repeat them in the confirmation dialog before the push happens.

After a card is scheduled, send a Slack message with the Slack Bot Send a Message action to the next reviewer or the account manager, including the post copy, the profiles it went to and the scheduled time. Also send a Slack message when a card enters internal review and when a card is sent back, so nobody has to watch the board to know something needs them. Let me configure which channel or person receives each of these.

Alongside the board, show a panel of campaign notes for the week being planned into, loaded with Search Calendar Notes and filtered to the visible week, so writers can see what the campaign calendar says while they draft. Let the writer change the week the board and the notes panel are focused on.

One important constraint to design around: Agorapulse can create posts but offers no operation to read existing publishing posts or drafts back out. So treat the push as a one way handoff and do not build any view that tries to list drafts already sitting in Agorapulse. All pre publish state lives in the app's own storage.

Related prompts

Explore more prompts
A brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasonLiveChat coverage board for planning next week's shiftsPhone routing control panel for LiveKit voice agentsLinkedIn Ads budget pacing dashboard for every client accountGive your team Looker numbers without buying more seatsPause marketing emails to escalated customers, then restore them