Daily blog draft from your content calendar to Contentful

By General Input

Every weekday at 8am, take the next topic from your Google Sheets content calendar, draft a full first-pass article, and save it as a Contentful draft for review.

Integrations

  • Contentful
  • Google Sheets

Type

Agentic Task

Categories

  • Marketing

Every weekday at 8am (skip weekends), read our Google Sheets content calendar using the Get Values operation. The calendar has one row per topic with columns: topic, target keyword, angle, notes, status. The spreadsheet id, sheet/tab name, and header row should all be configurable knobs.

Find the first row where the status column is empty or set to unclaimed. Process exactly one row per run to keep behavior predictable. If no unclaimed row is found, log that and stop for the day without creating anything.

For that row, draft a full first-pass blog article tuned to the topic, target keyword, angle, and any notes on the row. The draft must include: an H1 headline that uses the target keyword naturally; a 2-3 sentence intro; three to five section headings with 1-2 paragraphs of body copy under each; and a meta description around 150-160 characters that leads with the target keyword. The body should read like a real first draft, not an outline.

Create the draft in Contentful using the Create Entry operation against the blogPost content type. Leave the entry as a draft — never publish it, and never call any publish endpoint. Populate localized fields keyed by locale code, defaulting to en-US: for example fields.title["en-US"], fields.body["en-US"], fields.metaDescription["en-US"], fields.slug["en-US"]. The Contentful space id, environment (default master), content type id (default blogPost), locale code (default en-US), and the exact field id mapping should all be configurable so the workflow adapts to spaces with a different schema.

Once Contentful returns the new entry sys.id, write two things back to the same calendar row using the Update Values operation: the new entry id (or a link built from the space/environment/entry id) in a dedicated column, and "Draft ready" in the status column, so the marketing team knows the row is queued for review.

Only touch one row per run. Never publish. If anything fails partway through (draft written but calendar update fails, or vice versa), report the failure clearly so a human can reconcile the row before the next morning's run.

Related prompts

Explore more prompts
Call overdue Xero customers with an AI collections agentLocal listing health board for every location you manageLet support send one-off Loops emails without an engineerStop cold emails to anyone with a live deal in PipedriveiMessage campaign console with pre-flight checks and delivery boardLinkedIn Ads budget pacing dashboard for every client accountFront desk appointment confirmation board for the next 3 daysGive your team Looker numbers without buying more seatsBuild audience segments from product usage and push to LoopsTurn the people who engage with your posts into Pipedrive leads