{
  "$schema": "https://promptfoo.tech/schemas/workflow-template.json",
  "name": "Make.com: Notion → Blog Publishing with Image Generation",
  "slug": "make-notion-blog-publishing-flow",
  "platform": "Make.com",
  "category": "make",
  "difficulty": "Intermediate",
  "tags": [
    "make",
    "notion",
    "cms",
    "publishing"
  ],
  "summary": "Push a Notion draft to your headless CMS (Sanity/Contentful), generate a cover image with DALL-E or Ideogram, and schedule the publish.",
  "overview": "Editorial teams draft in Notion because it's fast — and then someone spends an hour retyping into the CMS. This Make scenario watches Notion for status='Ready', converts blocks to portable-text or MDX, generates a cover image from the article title, and creates a scheduled entry in Sanity or Contentful. From draft to scheduled in 60 seconds.",
  "variables": {
    "WEBHOOK_URL": "<your webhook URL>",
    "API_KEY": "<your provider API key>",
    "NOTION_TOKEN": "secret_..."
  },
  "steps": [
    {
      "order": 1,
      "name": "Structure the Notion DB",
      "description": "Fields: Title, Slug, Excerpt, Tags, Cover Prompt (fallback to Title), Status, Scheduled At."
    },
    {
      "order": 2,
      "name": "Block → portable text converter",
      "description": "Use a small function/webhook that maps Notion blocks. Handle H1-H3, lists, code blocks, images, callouts."
    },
    {
      "order": 3,
      "name": "Image generation",
      "description": "Ideogram for anything with typography; DALL-E for illustrations. Store the prompt on the page for reproducibility."
    },
    {
      "order": 4,
      "name": "Push to CMS",
      "description": "Sanity: mutation create. Contentful: entry POST + publish. Include SEO fields."
    },
    {
      "order": 5,
      "name": "Slack confirmation",
      "description": "Preview URL, cover image, scheduled time. Editor validates in one click."
    }
  ],
  "howItWorks": [
    "Notion database trigger on Status change to 'Ready to publish'.",
    "Fetch full page blocks; convert Markdown → CMS body format.",
    "Generate cover image with Ideogram (better for text-in-image) or DALL-E.",
    "Upload image to CMS asset store; create entry with scheduled_at.",
    "Post confirmation to Slack with a preview link."
  ],
  "benefits": [
    "No copy-paste tax; editors keep writing in Notion.",
    "Cover image at zero human cost — quality gate is a click.",
    "Every publish routed through the same pipeline (SEO fields, canonical, tags)."
  ],
  "useCases": [
    "Content teams with 4+ posts/week.",
    "Solo bloggers optimising for volume.",
    "SEO agencies managing publishing for multiple clients."
  ],
  "example": "Notion status → Ready. 45s later: Sanity entry created with cover 'A minimal desk with a laptop showing code — soft studio lighting'. Slack: 'Scheduled for Thu 10am ET.'",
  "faqs": [
    {
      "q": "MDX vs portable text?",
      "a": "MDX for Next.js sites, portable text for Sanity. Contentful uses Rich Text. Adapt the converter accordingly."
    },
    {
      "q": "Can I skip the image step?",
      "a": "Yes — leave a fallback placeholder and swap manually. Automating it saves ~5 min per post."
    },
    {
      "q": "Cost?",
      "a": "Ideogram/DALL-E cover ~$0.02-0.08. Make ops per run ~15."
    }
  ],
  "source": "https://promptfoo.tech/workflows/make-notion-blog-publishing-flow",
  "updated": "2026-06-06",
  "license": "CC-BY-4.0"
}