BakedBrie docs

Recipe: schedule posts on WoopSocial

The WoopSocial preset turns an approved card into scheduled posts: one post per target account, in the next open slot of your posting times. BakedBrie then checks until each post is published or failed, and reads its stats at 24 hours and 7 days. Nothing posts twice: each card output and target is sent once, and a retry resumes at the step that failed.

Captions come from the card. An agent writes them in a fenced block tagged bakedbrie-captions:

```bakedbrie-captions
{"caption": "Short caption for most platforms", "hashtags": ["#one", "#two", "#three"], "platform_captions": {"X": "Caption for X", "LINKEDIN_PAGES": "Longer caption for LinkedIn"}}
```

A target's caption_override replaces the card's caption for that account.

A time a person asked for

When a person asks for a specific time ("post this Friday at 2pm"), the agent adds publish_at to the same block: a local date and time such as "2026-10-02T14:00", read in the destination's time zone, or an exact time with Z or an offset. Leave it out otherwise.

```bakedbrie-captions
{"caption": "Short caption", "hashtags": ["#one"], "platform_captions": {}, "publish_at": "2026-10-02T14:00"}
```
  • The time is part of the approval: the review in BakedBrie and in Slack shows it, and a different time needs a new approval.
  • The posts are scheduled at exactly that time, outside the daily times, weekends setting and hold. It must be at least 10 minutes away when the card is delivered.
  • If the time has already passed when the card is delivered, the posts go in the next open slot and the delivered message says so. If another post already has that exact minute, the next free minute is used.
  • The receipt's schedule shows the time used, the requested time and what happened (as_requested, moved, past or taken).

Platforms

INSTAGRAM, FACEBOOK, LINKEDIN, LINKEDIN_PAGES, THREADS, X, TIKTOK, YOUTUBE (needs a video) and WOOPTEST, WoopSocial's sandbox. Try the workflow on WOOPTEST first; should_succeed: false on a WOOPTEST target simulates a failed post.

For image carousels longer than four slides, X receives the last four ordered slides. Other image-carousel targets receive the full set.

Before you run it

  1. Put the WoopSocial API key in the WOOPSOCIAL_API_KEY environment variable. Never paste it into chat.
  2. Find your WoopSocial project id and the id of each connected social account.
  3. Fill in {{BOARD_NAME}}, {{PROJECT_ID}} and the targets.

The prompt

In BakedBrie, make approved cards on the board "{{BOARD_NAME}}" schedule posts through WoopSocial. Use only the BakedBrie MCP tools. Start with whoami and stop if destinations or api_workflow is off.

1. Find the board with list_boards.
2. Call prepare_secret with kind woopsocial, purpose destination and env_var WOOPSOCIAL_API_KEY. Run the command it returns in my shell exactly as given, then use the drop_id. Never print the key.
3. Create an API destination with manage_destination: action create, preset woopsocial, name "WoopSocial", credential {"drop_id": "<the drop id>"}, woopsocial:
   {"project_id": "{{PROJECT_ID}}",
    "targets": [{"platform": "INSTAGRAM", "social_account_id": "{{INSTAGRAM_ACCOUNT_ID}}"},
                {"platform": "LINKEDIN_PAGES", "social_account_id": "{{LINKEDIN_PAGE_ACCOUNT_ID}}"}],
    "timezone": "America/Toronto", "daily_times": ["10:00", "15:00"], "include_weekends": false}
4. Make it the board's default destination with manage_destination action set_board_default.
5. If the board has a Slack destination, set the board hooks published and stats to it with manage_board_hooks, so live links and stats are posted in the card's Slack thread.
6. Read it back with manage_destination action get and tell me the targets, the slot times and whether the board default is set.

What to expect

  • Delivery starts when a card is approved (or finishes, on a board without reviews).
  • list_results shows each delivery with its receipt and its followups: the publish status per target with the live link or the error, then the 24 hour and 7 day stats.
  • The delivered message in the card's Slack thread names the scheduled time.
  • Changing slot times or targets later: manage_destination action update with the full woopsocial settings and the expected_revision from get.
  • Every code: Refusals.

View as Markdown