Generate campaign
generate_campaignCreates a new marketing campaign for a brand and generates its first batch of draft posts (copy + image briefs per channel). Posts land as drafts awaiting human approval in the Rebbel dashboard — this tool never publishes or schedules anything. If the brand already has a campaign with exactly this objective and angle, that campaign comes back instead (with a choice: open it, or generate anyway) and nothing new is created — pass generateAnyway:true only after the user asks for a second one. meta_facebook (Facebook) and meta_instagram (Instagram) are available to every brand; linkedin/linkedin_personal/threads/x only generate posts for brands specifically enabled for them (not yet open to everyone) — any other requested channel is dropped and noted in the response, not an error, unless none of the requested channels are eligible.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| angle | Yes | The creative angle or hook the campaign should take. | |
| brandId | Yes | The brand's id, from list_brands. | |
| channels | Yes | Channels to generate content for — meta_facebook is Facebook, meta_instagram is Instagram. | |
| objective | Yes | What this campaign is for, in plain English. For organic campaigns, phrase the objective as what the audience should know or feel after the campaign (e.g. 'people starting Sober October know HALT before October 1'); the business result (signups, follows) is tracked, not written into posts. For a promotional/launch campaign, name the thing being promoted (e.g. 'promote the fall product launch'). | |
| campaignType | No | 'launch' for an introduction/who-we-are campaign (recommended when the brand's marketing-presence audit shows a thin footprint), 'standard' otherwise. Defaults to 'standard'. | |
| generateAnyway | No | Default false: if this brand already has a campaign with exactly this objective and angle, the existing one is returned instead of a copy being created. Pass true only after the user has seen that and explicitly wants a second campaign on the same brief. | |
| referenceLinks | No | Existing pages on the brand's own site worth linking to when a concept's angle genuinely calls for it (a blog post, a guide, a product page) — e.g. {url: 'https://example.com/guides/x', label: 'the X guide'}. Optional; omit if none apply. Not forced into every post. |