tutorials13 min read

How to Build an AI Content Pipeline With APIs (No-Code Guide)

How to Build an AI Content Pipeline With APIs (No-Code Guide)
W

Wesso Hall

The Daily API

Share:𝕏in
Disclosure: This article may contain affiliate links. We earn a commission at no extra cost to you if you purchase through our links. We only recommend tools we genuinely believe in.

Why I Stopped Using ChatGPT's Interface for Content

For about six months, my content workflow looked like this: open ChatGPT, paste a prompt, copy the output, paste it into Google Docs, edit it, copy it again, paste it into my CMS, add formatting, find an image, write a meta description, hit publish. Then open ChatGPT again, write a prompt for social posts about the article, copy those, open Buffer, paste them in, schedule them. Then do the same thing for an email newsletter version.

One blog post turned into 45 minutes of copying and pasting between tabs. The actual writing took 15 minutes. The rest was just moving text from one place to another.

That's when I realized I was using AI like a fancy typewriter instead of what it actually is: an API you can plug into automated workflows. The ChatGPT interface is great for brainstorming and one-off tasks. But for repeatable content production, you want the API running behind the scenes, connected directly to your publishing tools.

I built a pipeline that takes a single topic and automatically generates a blog draft, three social media posts, and an email summary. All formatted, all scheduled, all without me opening ChatGPT once. The whole thing runs on Make.com with zero code.

Here's exactly how to build it.

What You'll Need

  • OpenAI API account (or Anthropic's Claude API, both work). You'll need an API key and a few dollars of credit. My pipeline costs about $0.15-$0.30 per run.
  • Make.com account (free tier works to start, but you'll want the $10.59/month Core plan for more operations)
  • Google Sheets (free) as your content database
  • A publishing tool with an API or Zapier/Make integration. I use WordPress, but this works with Ghost, Webflow, Notion, Beehiiv, or basically anything.
  • Buffer or similar for social media scheduling

That's it. No code. No servers. No technical background required beyond being able to follow step-by-step instructions.

The Architecture (Simple Version)

The pipeline has four stages:

  1. Input: You add a topic and a few notes to a Google Sheet row
  2. Generate: Make.com sends your topic to the OpenAI API with detailed prompts for each content type
  3. Store: The generated content goes back into Google Sheets for review
  4. Publish: After you approve, Make.com pushes content to your blog, social media, and email tool

You touch it twice: once to add the topic, once to review and approve. Everything else is automated.

Step 1: Set Up Your Google Sheet

Create a Google Sheet with these columns:

  • A: Topic - The article topic or title
  • B: Notes - Any specific points to cover, links to reference, or angle you want
  • C: Status - "new", "generating", "review", "approved", "published"
  • D: Blog Draft - Where the generated blog post goes
  • E: Social Post 1 - Twitter/X post
  • F: Social Post 2 - LinkedIn post
  • G: Social Post 3 - Instagram caption
  • H: Email Summary - Newsletter blurb
  • I: Meta Description - SEO meta description
  • J: Tags - Suggested tags/categories

Add a row and put a topic in column A, some notes in column B, and set the status to "new." This is what triggers the automation.

Step 2: Create Your Make.com Scenario

Open Make.com and create a new scenario. Here's the flow:

Module 1: Watch Google Sheets

Add a "Google Sheets - Watch Rows" module. Connect it to your spreadsheet and set it to watch for new rows where column C (Status) equals "new."

Set the polling interval to every 15 minutes, or run it manually while you're testing.

Module 2: Update Status

Add a "Google Sheets - Update a Row" module that immediately changes the status to "generating." This prevents duplicate runs if the scenario triggers again before it finishes.

Module 3: Generate Blog Draft

Add an "HTTP - Make a Request" module. This is where you call the OpenAI API directly.

URL: https://api.openai.com/v1/chat/completions

Method: POST

Headers:

  • Authorization: Bearer YOUR_API_KEY
  • Content-Type: application/json

Body:

{
  "model": "gpt-4o",
  "messages": [
    {
      "role": "system",
      "content": "You are a content writer for a tech blog. Write in first person, casual tone. Use specific examples and personal opinions. Never use phrases like 'in today's digital landscape' or 'whether you're a'. Avoid em dashes. Write 1200-1500 words."
    },
    {
      "role": "user",
      "content": "Write a blog post about: {{topic}}. Notes: {{notes}}. Include a compelling opening paragraph that starts with a specific story or observation, not a generic statement."
    }
  ],
  "max_tokens": 3000,
  "temperature": 0.8
}

Replace {{topic}} and {{notes}} with the Google Sheets values from Module 1.

A note on the system prompt: this is where your content quality lives. Spend time on this. Include your brand voice guidelines, topics to avoid, formatting preferences, and any recurring elements you want in every post. The better your system prompt, the less editing you'll do later.

Module 4: Generate Social Posts

Add another HTTP module calling the same API, but with a different prompt:

{
  "model": "gpt-4o",
  "messages": [
    {
      "role": "system",
      "content": "You create social media content for a tech blog. Casual, opinionated, first person. Never use hashtags excessively (2 max). Never start with 'Did you know' or 'Here's why'."
    },
    {
      "role": "user",
      "content": "Based on this blog post, create three social posts: 1) A Twitter/X post (max 280 chars, punchy and opinionated), 2) A LinkedIn post (3-4 paragraphs, more professional but still personal), 3) An Instagram caption (conversational, includes a call to action). Blog content: {{blog_draft_from_module_3}}"
    }
  ],
  "max_tokens": 1500,
  "temperature": 0.7
}

Notice I'm feeding the blog draft into this prompt. This ensures the social posts are actually derived from the article content rather than being generic takes on the topic. Consistency across channels matters more than most people realize.

Module 5: Generate Email Summary and Meta

One more API call for the email newsletter blurb and SEO meta description:

{
  "model": "gpt-4o",
  "messages": [
    {
      "role": "system",
      "content": "You write email newsletter summaries and SEO meta descriptions. Keep email summaries to 2-3 sentences that make readers want to click. Meta descriptions should be 150-160 characters."
    },
    {
      "role": "user",
      "content": "Blog post: {{blog_draft}}. Create: 1) A 2-3 sentence email newsletter teaser for this post. 2) An SEO meta description (150-160 chars). 3) 3-5 relevant tags as a comma-separated list."
    }
  ],
  "max_tokens": 500,
  "temperature": 0.6
}

I use a lower temperature (0.6) for this module because meta descriptions and tags need to be precise, not creative.

Module 6: Write Everything Back to Google Sheets

Add a "Google Sheets - Update a Row" module that writes all the generated content back to the appropriate columns and sets the status to "review."

You'll need to parse the API responses. OpenAI returns JSON with the content in choices[0].message.content. In Make.com, you can use the built-in JSON parser to extract this. If your social posts and email/meta come back as a single text block, you can either ask the API to return JSON format (add "respond in JSON" to your prompt) or use Make.com's text parser to split them.

Step 3: The Review Step

This is important. Do not skip this.

After the scenario runs, you'll have a Google Sheet row with all your content filled in, waiting for review. Open it, read through everything, and make edits directly in the cells.

I typically spend 10-15 minutes per piece reviewing and tweaking. The blog draft usually needs the most work. I'll adjust the opening, add personal anecdotes the AI couldn't know about, cut any sections that feel generic, and make sure the voice sounds like me, not like a helpful assistant.

The social posts usually need less editing. Maybe 2-3 minutes of adjustments.

Once you're happy, change the status to "approved."

Step 4: Automated Publishing

Create a second Make.com scenario that watches for rows where the status is "approved."

Publishing to Your Blog

If you're on WordPress, Make.com has a native WordPress module. Map your blog draft to the post content, your topic to the title, your meta description to the excerpt, and your tags to categories/tags.

For other platforms:

  • Ghost: Use the Ghost API via HTTP module
  • Webflow: Native Make.com integration
  • Notion: Native integration (great if you use Notion as a CMS)
  • Markdown/Git-based blogs: Use Make.com's GitHub module to commit a new file

I push to a "draft" status in my CMS rather than publishing directly. This gives me one final chance to check formatting, add images, and set the featured image before hitting publish. But if you trust your pipeline, you can publish directly.

Scheduling Social Media

Add Buffer modules (or Hootsuite, or whatever you use) to schedule the social posts. Map each post to the appropriate platform. I set the scheduling for the day after the blog post goes live, staggered throughout the day.

Email Newsletter

If you use Beehiiv, ConvertKit, or Mailchimp, Make.com can add the email summary to your next newsletter draft. I use this to build a weekly roundup: the pipeline adds each article's summary to a running Google Doc, and on Friday I copy the whole thing into my newsletter tool.

Update Status to Published

Final module: update the Google Sheet status to "published" with a timestamp.

The Cost Breakdown

This surprises most people. Here's what I actually spend per article:

  • OpenAI API calls (3 per article): ~$0.15-$0.30 depending on length
  • Make.com operations (6-8 per article): ~$0.01
  • Buffer, Google Sheets, etc.: Already paying for these

Total per article: roughly $0.20-$0.35

Compare that to $50-$100 for a freelance writer to produce one blog post (which still needs social media, email, and meta content created separately). Even if you heavily edit the AI output, the cost-per-piece is essentially zero.

I run this pipeline 3-4 times per week. My monthly API cost for content generation is about $5-8. Make.com's Core plan at $10.59/month handles it easily.

Using Claude Instead of OpenAI

Everything above works identically with Anthropic's Claude API. Just change the API endpoint and request format:

URL: https://api.anthropic.com/v1/messages

Headers:

  • x-api-key: YOUR_API_KEY
  • anthropic-version: 2023-06-01
  • Content-Type: application/json

Body format is slightly different (Claude uses messages array but with a different structure), but the prompts are the same.

I actually prefer Claude for blog content because it follows voice instructions more precisely. OpenAI tends to be chattier and harder to constrain. Claude's output needs less editing in my experience. But both work. Use whichever you prefer.

Zapier Alternative

If you already use Zapier instead of Make.com, you can build this same pipeline there. The main differences:

  • Zapier's OpenAI integration is a native module, so you don't need to configure HTTP requests manually. Easier setup, but less control over parameters.
  • Zapier's free tier is more limited (100 tasks/month vs Make.com's 1,000 operations)
  • Zapier costs more at scale ($29.99/month for their Starter plan vs $10.59 for Make.com Core)

For this specific use case, Make.com is the better value. But if your team already uses Zapier for other automations, consolidating makes sense.

Advanced: Adding Research to the Pipeline

The basic pipeline generates content from a topic and your notes. But you can make it significantly better by adding a research step.

Before the content generation modules, add an HTTP module that calls a search API (like Brave Search API or SerpAPI) with your topic. Feed the top 3-5 search results into the blog generation prompt as context.

Now your AI isn't writing from its training data alone. It's referencing current information, which means more accurate stats, current tool names and pricing, and content that's actually competitive with what's already ranking.

This adds about $0.01 per run for the search API call and makes a noticeable difference in content quality. I added this after my first month and the reduction in editing time paid for the extra complexity immediately.

Advanced: Content Repurposing Loop

Once you have the basic pipeline working, add a repurposing layer. I have a separate Make.com scenario that:

  1. Watches my blog RSS feed for new published posts
  2. Sends the full post to Claude API with a prompt to extract 5-7 key insights
  3. Turns each insight into a standalone social post, scheduled over the next two weeks
  4. Creates a "quote graphic" prompt for each insight (which I batch-create in Canva)

One blog post now generates 2-3 weeks of social content. The ROI of writing long-form content goes way up when you systematically extract every piece of value from it.

If you want to see how I automate the social media side of this, I wrote a detailed breakdown of my social media automation workflow at different price points.

Common Mistakes I Made

Skipping the system prompt engineering. My first version had a one-line system prompt: "You are a blog writer." The output was generic and required heavy editing. I spent an evening writing a detailed system prompt with voice examples, banned phrases, formatting rules, and content principles. Editing time dropped by 60%.

Not parsing API responses properly. OpenAI returns nested JSON. The first time I ran the pipeline, I got raw JSON dumped into my Google Sheet instead of the actual content. Make.com's JSON parse module fixes this, but I spent an embarrassing hour debugging it.

Setting temperature too high for structured content. I started with temperature 1.0 for everything. Great for creative blog openings, terrible for meta descriptions that need to be exactly 155 characters. Use 0.7-0.8 for creative content and 0.5-0.6 for structured output.

Trying to generate everything in one API call. I initially tried to get the blog post, social content, email summary, and meta description from a single prompt. The quality was bad because the model was trying to do too many different things. Splitting into separate, focused calls costs a few cents more but produces dramatically better output.

Not having a review step. I briefly tried publishing directly from the pipeline. The third article had a factual error that I would have caught in 30 seconds of reading. Always review before publishing. The 10 minutes you spend reviewing saves you from the embarrassment of publishing AI hallucinations.

The Full Picture

Building this pipeline took me about 4 hours the first time. Most of that was fiddling with Make.com modules and parsing API responses. If I were building it from scratch today with what I know, it would take about 90 minutes.

The pipeline now handles my content production from topic to published post. I still write the topics, review everything, and add personal touches. But the mechanical work of generating drafts, formatting, scheduling, and distributing is fully automated.

My content output went from 2 posts per month to 3-4 per week. Not because I'm working harder. Because the friction between "I have an idea" and "it's published across all channels" went from 45 minutes to 10 minutes of review.

That's the real value of connecting APIs to your content workflow. Not replacing the thinking, but eliminating the busywork between the thinking and the publishing.

W

Wesso Hall

Writing about AI tools, automation, and building in public. We test everything we recommend.

Enjoyed this article?

Get our weekly Tool Drop — one AI tool breakdown, every week.

Related Articles