This workflow corresponds to n8n.io template #4372 — we link there as the canonical source.
This workflow follows the Agent → Airtable recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"meta": {
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "a8a6738c-9269-427d-821c-9793db821d88",
"name": "Generate Ad Copy and CTAs",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
1180,
3040
],
"parameters": {
"text": "=Generate a catchy 2-sentence ad copy and 3 strong CTAs for the following product.\n\nProduct Name: {{ $json['Product Name'] }}\nFeatures: {{ $json['Product Features'] }}",
"options": {},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 1.9
},
{
"id": "bc9d40c0-758a-490b-9c29-67c901c681c7",
"name": "OpenAI Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
1120,
3260
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini"
},
"options": {}
},
"typeVersion": 1.2
},
{
"id": "0b3e78c5-a59f-4eaa-8f10-c5110b64d6e6",
"name": "Slack",
"type": "n8n-nodes-base.slack",
"position": [
1760,
2940
],
"parameters": {
"text": "=Ad copy: \n{{ $json.output.ad_copy }}\n\nCTAs: \n{{ $json.output.ctas }}",
"select": "channel",
"channelId": {
"__rl": true,
"mode": "list",
"value": "C08TTV0CC3E",
"cachedResultName": "all-nathing"
},
"otherOptions": {
"includeLinkToWorkflow": false
}
},
"typeVersion": 2.3
},
{
"id": "28bc17c8-1d47-4769-bd2b-38eadf33ad5f",
"name": "Structured Output Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
1360,
3260
],
"parameters": {
"jsonSchemaExample": "{\n \"ad_copy\": \"Stay refreshed and eco-friendly with the EcoSmart Bottle\u2014your self-cleaning hydration companion that keeps drinks ice-cold for a full 24 hours! Join the movement towards a healthier planet with every sip!\",\n \"ctas\":\n \"Get Yours Now and Sip Sustainability!\"\n}"
},
"typeVersion": 1.2
},
{
"id": "9ee0cf4b-fa21-46bb-b64f-834da2762fdb",
"name": "Airtable",
"type": "n8n-nodes-base.airtable",
"position": [
1760,
3240
],
"parameters": {
"base": {
"__rl": true,
"mode": "list",
"value": "appjaqV0O7FkXT2qj",
"cachedResultUrl": "https://airtable.com/appjaqV0O7FkXT2qj",
"cachedResultName": "Table no.1"
},
"table": {
"__rl": true,
"mode": "list",
"value": "tblTAvRqVFOo5AVDF",
"cachedResultUrl": "https://airtable.com/appjaqV0O7FkXT2qj/tblTAvRqVFOo5AVDF",
"cachedResultName": "Table 1"
},
"columns": {
"value": {
"CATs": "={{ $json.output.ctas }}",
"Ad copy": "={{ $json.output.ad_copy }}",
"Product Name": "={{ $('Product Info Input').item.json['Product Name'] }}",
"Product Features": "={{ $('Product Info Input').item.json['Product Features'] }}"
},
"schema": [
{
"id": "id",
"type": "string",
"display": true,
"removed": true,
"readOnly": true,
"required": false,
"displayName": "id",
"defaultMatch": true
},
{
"id": "Product Name",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Product Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Product Features",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Product Features",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Ad copy",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Ad copy",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "CATs",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "CATs",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "update"
},
"typeVersion": 2.1
},
{
"id": "2c548ce7-c10b-47dd-b07d-4f2cc8f48881",
"name": "Product Info Input",
"type": "n8n-nodes-base.formTrigger",
"position": [
960,
3040
],
"parameters": {
"options": {},
"formTitle": "Product Info",
"formFields": {
"values": [
{
"fieldLabel": "Product Name"
},
{
"fieldLabel": "Product Features"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "3fb03bf6-7a54-4aad-afe5-4d4ebee70cda",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-740,
3280
],
"parameters": {
"color": 4,
"width": 1289,
"height": 2078,
"content": "## \u270d\ufe0f AI Copywriter Agent \u2013 From Product Info to Ad Copy + CTAs\n\nInstantly generate ad copy and calls-to-action using GPT based on product details. Ideal for:\n\u2705 Marketers \u2014 generate engaging ad content in seconds\n\u2705 Founders \u2014 test multiple copy angles fast\n\u2705 Designers \u2014 fill mockups with real copy\n\n---\n\n### \u2699\ufe0f What's Used\n\n**n8n Nodes:**\nForm Submission \u2192 OpenAI (GPT via Tools Agent) \u2192 Slack OR Airtable\n\n**External Tools:**\n\n* OpenAI (Chat Model)\n* Slack (Send Message)\n* Airtable (Create Record)\n\n---\n\n### \ud83d\udd11 Setup \u2013 Credentials Needed\n\n* **OpenAI API Key** \u2192 Add under OpenAI node credentials\n* **Slack OAuth** \u2192 Connect Slack workspace in n8n\n* **Airtable Token** \u2192 Add Airtable API key and base/table info\n\n---\n\n### \ud83d\ude80 Workflow Steps\n\n1. **User submits product info** via form\n2. **GPT generates content** using a custom prompt\n\n * Output: 2-sentence ad copy + 3 call-to-actions\n3. **Structured parser** extracts clean fields\n4. **Send output to Slack** or **log in Airtable**\n\n * Choose one or both for distribution/storage\n\n---\n\n### \ud83d\udce4 Slack Output Format\n\n```\n*Ad Copy for EcoSmart Bottle* \nStay refreshed with the EcoSmart Bottle\u2014self-cleaning tech and 24-hour cold retention keep your drink perfect anytime.\n\n*CTAs:* \n- Buy Now \n- Stay Cool All Day \n- Get Yours Today\n```\n\n---\n\n### \ud83d\udca1 Pro Tips\n\n* Use GPT prompt variations to test different tones (funny, urgent, luxury)\n* Add \"Batch Mode\" with `SplitInBatches` node to process multiple products at once\n* Route output to Slack first for **team review**, then log approved copies in Airtable\n* Use outputs for:\n\n * Landing pages\n * Ads (Meta, Google, etc.)\n * Product cards and banners\n\n---\n\n### \ud83d\udee0\ufe0f Customize It\n\n* Add scoring logic for ad variants\n* Connect to Trello, Notion, or your CMS\n* Store prompt + outputs for future reference\n\n---\n\nThis workflow gives your marketing team a **real-time copy assistant**\u2014just submit a product and watch the ad copy write itself. No writer's block. No delay. Pure automation magic.\n"
},
"typeVersion": 1
},
{
"id": "938469cb-f289-4796-9e36-cb7a393edc23",
"name": "Sticky Note9",
"type": "n8n-nodes-base.stickyNote",
"position": [
-740,
2940
],
"parameters": {
"color": 4,
"width": 1300,
"height": 320,
"content": "=======================================\n WORKFLOW ASSISTANCE\n=======================================\nFor any questions or support, please contact:\n Yaron@nofluff.online\n\nExplore more tips and tutorials here:\n - YouTube: https://www.youtube.com/@YaronBeen/videos\n - LinkedIn: https://www.linkedin.com/in/yaronbeen/\n=======================================\n"
},
"typeVersion": 1
},
{
"id": "ce22eac5-dc26-41ec-bc63-2dbc648335aa",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
900,
2540
],
"parameters": {
"width": 620,
"height": 880,
"content": "## \ud83e\udde0 Step 1: Generate Ad Copy & CTAs with AI\n\nThis section transforms raw product info into compelling marketing content using GPT-powered intelligence.\n\n### \ud83e\udd16 **AI-Powered Copywriting Agent**\n\nThe **Tools Agent** receives structured product input and uses a connected chat model to generate a punchy two-line ad and three strong calls-to-action. Perfect for landing pages, ads, or product cards.\n\n### \ud83d\udd17 **Generate with OpenAI Chat Model + Structured Output Parser**\n\nThe generation is handled by the **OpenAI Chat Model**, guided by a custom prompt tailored to highlight the product\u2019s name and features.\nThe **Structured Output Parser** ensures the response is clean, labeled, and ready for downstream use (Slack, Airtable, etc.).\n\n> \ud83d\udccc This step removes the guesswork from copywriting \u2014 one form input delivers high-converting messaging at scale.\n"
},
"typeVersion": 1
},
{
"id": "c8efbf29-0a40-4096-9db8-92ce16ded9c0",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
1560,
2020
],
"parameters": {
"color": 6,
"width": 620,
"height": 1400,
"content": "## \ud83d\udce4 Step 2: Share & Store Results\n\nThis step delivers the AI-generated content where it's needed\u2014either to your team on Slack or into your structured Airtable database.\n\n### \ud83d\udce8 **Option A: Notify via Slack**\n\nThe **Slack Node** posts the generated ad copy and CTAs directly to a designated Slack channel. This gives your marketing team immediate access to fresh, AI-crafted content.\n\n**Message Format:**\n\n```\n*Ad Copy for {{ $json[\"product_name\"] }}* \n{{ $json[\"ad_copy\"] }}\n\n*CTAs:* \n- {{ $json[\"cta1\"] }} \n- {{ $json[\"cta2\"] }} \n- {{ $json[\"cta3\"] }}\n```\n\n> \ud83d\udcac Ideal for fast-paced teams needing instant feedback and collaboration.\n\n### \ud83d\udcca **Option B: Log to Airtable**\n\nThe **Airtable Node** creates a new record for each product, storing the name, features, ad copy, and CTAs. This builds a searchable history of AI-generated marketing content.\n\n**Logged Fields:**\n\n* Product Name\n* Features\n* Ad Copy\n* CTA 1\n* CTA 2\n* CTA 3\n\n> \ud83d\udccc Great for long-term tracking, performance analysis, or sharing across systems.\n\nLet me know if you'd like to add approval steps, testing variations, or metrics tracking!\n"
},
"typeVersion": 1
}
],
"connections": {
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "Generate Ad Copy and CTAs",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Product Info Input": {
"main": [
[
{
"node": "Generate Ad Copy and CTAs",
"type": "main",
"index": 0
}
]
]
},
"Structured Output Parser": {
"ai_outputParser": [
[
{
"node": "Generate Ad Copy and CTAs",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Generate Ad Copy and CTAs": {
"main": [
[
{
"node": "Airtable",
"type": "main",
"index": 0
},
{
"node": "Slack",
"type": "main",
"index": 0
}
]
]
}
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Transform product details into compelling marketing copy in seconds. This intelligent n8n workflow takes basic product information and generates professional ad copy with powerful calls-to-action using GPT-4, then distributes the results to your team via Slack or stores them in…
Source: https://n8n.io/workflows/4372/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
This workflow turns your website form into a fully automated AI Lead Qualification system. Whenever a new lead submits your form, the workflow: Receives the submission through a Webhook Cleans and nor
This workflow generates comprehensive B2B leads, from a selected Business type in ANY CITY IN THE WORLD, including: Company name; Website; Email (enriched with AI Agent); Phone number; Address; Main L
Send a message or a voice note on Telegram right after the meeting. n8n transcribes (if it's a voice note) and sends the text to GPT. GPT generates a structured and professional meeting minutes report
This workflow automates athlete performance monitoring through two parallel pipelines: real-time session analysis triggered by training form submissions, and scheduled weekly performance summaries. De
Noco Kanban Board with AI Prioritization. Uses formTrigger, agent, lmChatOpenAi, outputParserStructured. Event-driven trigger; 27 nodes.