n8n / Make: no-code OG automation
One flow covers every platform that has a trigger node, Webflow, Ghost, Notion, Airtable, classic WordPress, RSS, anything. The OGImagen side is just HTTP: one call to create, one webhook (or poll) to collect.
Template flow (recommended default)
Templates render synchronously, so the whole flow is two nodes:
1. Trigger e.g. "Webflow → Collection item published"
2. HTTP Request POST https://ogimagen.com/api/v1/templates
Header: Authorization: Bearer {{$env.OGIMAGEN_API_KEY}}
Body (JSON):
{
"template": "blog",
"title": "{{ $json.name }}",
"siteName": "yoursite.com",
"brandKitId": "{{$env.OGIMAGEN_BRAND_KIT_ID}}"
}
→ response: { "url": "https://cdn.ogimagen.com/templates/....png" }
3. (update node) write {{ $json.url }} back to the CMS item's og-image fieldThe response URL is permanent, set it once in the item's SEO field and forget it.
AI flow (hero content)
AI generation is async. In n8n the clean shape is a Webhook node as the callback:
1. Trigger CMS publish (filtered to items flagged "AI image")
2. HTTP Request POST https://ogimagen.com/api/v1/generations
Body (JSON):
{
"title": "{{ $json.title }}",
"displayText": "{{ $json.title }}",
"quality": "flash",
"variants": 1,
"idempotencyKey": "{{ $json.slug }}-{{ $json.title | hash }}",
"webhookUrl": "https://your-n8n.com/webhook/og-done",
"webhookSecret": "{{$env.OGIMAGEN_WEBHOOK_SECRET}}"
}
--- second workflow ---
1. Webhook node POST /webhook/og-done (receives generation.completed)
2. IF {{ $json.generation.status }} equals "done"
3. (update node) write {{ $json.generation.urls.og }} to the CMS itemNo inbound webhook available (Make free tier, locked-down n8n)? Replace the second workflow with Wait 15s → HTTP GET /api/v1/generations/{{id}} → IF done in a loop. Details on the event payload and HMAC signature are in the API docs.
Make (Integromat)
Identical shape: Watch events → HTTP "Make a request" → Update record. Use a Custom webhook module as the webhookUrl for the AI path.
Why the idempotencyKey matters here
Automation platforms re-deliver triggers on retries and re-runs. Keying the create on slug + title means a re-run returns the original image with deduplicated: true instead of spending another credit.
Platform notes
| Platform | Trigger | Write-back |
|---|---|---|
| Webflow | Collection item created/published | Update item → SEO og:image field |
| Ghost | post.published webhook | Admin API: update og_image (native field) |
| Notion | Database item → status = Published | Update page property (your site reads it at build) |
| Airtable | Record matches view | Update record field |
| WordPress | n8n WordPress node / RSS poll | REST: update ogimagen_url post meta |
Full parameter reference in the API docs. Prefer code? Sanity, Strapi and headless WordPress recipes.