Cross Platform Campaign
Skill ID: cross-platform-campaign · Install skills · Canonical source
Try it
Create a coordinated launch campaign for LinkedIn and Instagram using our approved assets.
The instructions below describe the workflow. Installed skills and connected tools are separate; use only operations exposed by your authorized connection.
Build one coherent campaign while respecting how each social channel works. Compose the generate-image and simplified-social capabilities when campaign visuals are needed.
Guardrails
Existing explicit authorization for unchanged content, accounts, timing, media, and comments is sufficient; ask only when that authorization is missing or the proposed effects change.
- Do not publish or schedule without explicit approval of the final campaign matrix.
- Create safe previews with
action: "draft"when the user asks to prepare the campaign. - Image generation spends credits. Proceed when the image request is explicit; confirm first when visual generation is ambiguous.
- Carry a generated image’s permanent
asset_idinto socialmedia; never rely on its expiring signed URL. - Pause affected connected operations on authorization failure. Continue planning or requested accountless drafts when no accounts are connected; omit
account_ids. Scheduling, queueing, and account analytics require suitable connected accounts. - Use a native media preview when the client supports it and the user wants to review the result. Otherwise show a usable link. Refresh expired asset URLs; do not download remote media merely to bypass client display restrictions. Review bundles and other web pages remain links.
Workspace and handoff
Before connected operations, use simplified-workspace when the client/workspace/teamspace is named or uncertain. Resolve the exact numeric teamspace and carry its space_id on every related account, analytics, asset, generation, draft, tag, review, and continuation call. Re-list scoped resources after switching clients; stop on access failures rather than falling back to another space. Pass the resolved context to every delegated skill.
Workflow
- Distill the brief into audience, objective, offer, proof, CTA, dates, channels, tone, constraints, and success metric. State sensible assumptions instead of requesting a long questionnaire.
- Call
social_getSocialMediaAccountsonce and map requested channels to returned account IDs. - Define the campaign spine: one promise, supporting proof, CTA, and a sequence such as tease, launch, proof, reminder, and last call.
- Create channel-native variants. Change hook, length, CTA, format, and platform settings; do not paste the same caption everywhere.
- Plan media by post. If generation is requested, follow
$generate-image, discover the current model schema, and usestorage: "asset"for anything that will be attached to a post. For a user-supplied local file, follow$simplified-socialthrough signed upload andapi_registerAsset, wait forapi_getAsset, and carry the UUID. - Show a campaign matrix containing phase, date, account, copy, media, objective, and CTA.
- When drafts are authorized, call
social_createSocialMediaPostwithaction: "draft"for each post. Pass generated asset UUIDs inmediaand use../simplified-social/references/platform-settings.mdforadditionalfields. - Offer a stakeholder review package via
$campaign-reviewwhen several drafts need approval. - Schedule or queue only after the user explicitly approves the final matrix.
add_to_queuerequests queueing; report service-returned timing rather than guaranteeing immediate delivery.
Quality Bar
- Keep the promise and visual identity consistent across the campaign.
- Make each post useful on its own while advancing the sequence.
- Match media to platform format requirements; never attach an image to a reel or short that requires video.
- Do not invent product claims, prices, deadlines, testimonials, or availability.
- Surface missing landing-page URLs, legal copy, offer terms, or media before publishing.
Media and write results
Use manage-assets to find existing library media before generating copies. Resolve names/tags through exposed asset discovery, preserve pagination and scope, import accessible remote files, and require ready assets before generation or attaching media. Check byte access and HTTP PUT capability before signing a local/chat attachment upload; if unavailable, ask for a Simplified asset ID or downloadable URL. Pass permanent UUIDs into drafts. A missing required visual remains a stated production gap; do not report a media-ready post without it.
For a batch of drafts, retain each successful returned ID and report created, pending, and failed items. Continue only unfinished items; do not recreate successful drafts after a later failure. A plan or test design alone does not authorize remote writes.
Output
Lead with the campaign idea and rollout. Then show the channel matrix, asset plan, drafts created, and any items blocking approval or scheduling.
