by Mychel Garzon
Quick overview This workflow runs every 15 minutes and uses a watermark to incrementally sync recently updated rows from PostgreSQL to a Microsoft SharePoint list via the Microsoft Graph $batch API, posting run summaries and deduplicated error alerts to a Microsoft Teams channel. How it works Runs every 15 minutes on a schedule and loads SharePoint/Teams configuration plus the last successful sync timestamp stored in n8n static data. Queries PostgreSQL for rows updated since the last watermark timestamp and aggregates the results into a single batchable payload. If no rows are returned, advances the watermark to the current run start time and posts a sync summary to Microsoft Teams. If rows exist, chunks them into Graph-compliant $batch requests (max 20 operations per batch) that create items in the target SharePoint list. Sends each batch to the Microsoft Graph $batch endpoint with retries and classifies per-item results into successes, failures, and 429 throttling. Aggregates results across all batches and, when new failures appear, posts a Microsoft Teams alert listing the failed/throttled source IDs while suppressing repeat alerts for previously seen IDs. Updates the stored watermark only when there are zero failures, then posts a Microsoft Teams sync summary with counts and watermark status. Setup Add a PostgreSQL credential, then update the SQL query to use your table name and an indexed updated_at timestamptz column. Add a Microsoft Graph OAuth2 credential with permissions to create SharePoint list items, and set your SharePoint site ID and list ID in the workflow configuration values. Edit the field mapping used for SharePoint list item creation so your PostgreSQL columns map to your SharePoint field internal names. Add Microsoft Teams credentials and set the target Team ID and Channel ID for both the sync summary and error alert messages. Requirements PostgreSQL database with an indexed updated_at timestamptz column on the source table Microsoft Graph OAuth2 credential with Sites.ReadWrite.All permission for the target SharePoint site Microsoft SharePoint list with field internal names matching the column mapping in the batch payload builder Microsoft Teams credential with permission to post to the configured team and channel Customization Change the polling interval in the Every 15 Minutes Trigger node to run more or less frequently depending on your data update volume. Adjust the batchSize value in the Set Configuration Parameters node — the maximum is 20 per Graph API constraint and is enforced in code regardless of what is set here. Modify the SQL query in the Query Updated Rows from Postgres node to add filters, joins, or column selections beyond the default updated_at watermark check. Extend the batch payload builder in the Construct Graph Batch Payloads node to support upsert logic by adding a dependsOn field to chain an existence-check request before each write. Add a dead-letter table in PostgreSQL and exclude persistently failing rows from the query using AND id NOT IN (SELECT id FROM sync_dead_letter) to break infinite retry cycles.
by Panth1823
Keep your job listings database clean without manual checks. Every three days, this workflow fetches all active jobs from your Postgres database, runs each application URL through a validation check, identifies dead links via HTTP status codes and soft-404 redirect detection, then marks failed entries as inactive in both Supabase and Google Sheets simultaneously. Who it's for Teams running a job aggregator, career platform, or internal hiring tracker who store job listings in Postgres and want stale or broken apply links removed automatically — without waiting for user reports. How it works A Schedule Trigger fires every 3 days All active jobs are fetched from your Postgres (Supabase) database via a SQL query A Prepare URLs node filters out any rows with missing, malformed, or non-HTTP URLs before they're checked An HTTP Request node sends a HEAD request to each apply_url A Find Dead Jobs code node analyzes each response and flags a job as dead if: Status code is 404 or 410 DNS resolution fails (ENOTFOUND) Connection is refused (ECONNREFUSED) A 301/302/307 redirect points to a different path — indicating the job was removed and the ATS is silently redirecting (soft-404 detection) If dead jobs are found, an IF node routes them to both update nodes in parallel: Supabase (Postgres) — status set to inactive via parameterized SQL Google Sheets — row updated to reflect the new status If no dead jobs are detected, the workflow exits cleanly with no writes Setup Connect your Postgres credentials and confirm the query in the Fetch Active Jobs node matches your table and column names (apply_url, job_hash, job_title) Connect your Google Sheets credentials and set the Resource ID and Sheet Name in the Mark Inactive node Confirm the inactive status value in the Postgres update query matches what your app expects (Optional) Adjust the soft-404 redirect detection logic in the Find Dead Jobs node if your ATS platforms use non-standard redirect patterns Database columns expected job_hash (unique identifier), apply_url, job_title, status Requirements Self-hosted or cloud n8n instance Supabase (or any Postgres-compatible) database with an active jobs table Google Sheets with a matching jobs log
by Mantaka Mahir
How it works A complete AI-powered study assistant system that lets you chat naturally with your documents stored in Google Drive: The system has two connected workflows: 1. Document Indexing Pipeline (Sub-workflow): • Accepts Google Drive folder URLs • Automatically fetches all files from the folder • Converts documents to plain text • Generates 768-dimensional embeddings using Google Gemini • Stores everything in Supabase vector database for semantic search 2. Study Chat Agent (Main workflow): • Provides a conversational chat interface • Automatically detects and processes Google Drive links shared in chat • Searches your indexed documents using semantic similarity • Maintains conversation history across sessions • Includes calculator for math problems • Responds naturally using Google Gemini 2.5 Pro Use Cases: Students studying for exams, researchers managing papers, professionals building knowledge bases, anyone needing to query large document collections conversationally. Set up steps Prerequisites: • Google Drive OAuth2 credentials • Google Gemini API key (free tier available) • Supabase account with Postgres connection • ~15 minutes setup time Complete Setup: Part 1: Document Indexing Workflow Add Google Drive OAuth2 credentials to the Drive nodes Configure Supabase Postgres credentials in the SQL node Add Supabase API credentials to the Vector Store node Add Google Gemini API key to the Embeddings node Part 2: Study Agent Workflow Import the Study Agent workflow Verify the "Folder all file to vector" tool links to the indexing workflow Add Google Gemini API credentials to both Gemini nodes Configure Supabase API credentials in the Vector Store node Add Postgres credentials for Chat Memory Deploy and access the chat via webhook URL How to Use: Open the chat interface (webhook URL) Paste a Google Drive folder link in the chat Wait for indexing to complete (~1-2 minutes) Start asking questions about your documents The AI will search and answer from your materials Note: The indexing workflow runs automatically when you share Drive links in chat, or you can run it manually to pre-load documents. System Components: Main Agent:** Gemini 2.5 Pro with conversational AI Vector Search:** Supabase with pgvector (768-dim embeddings) Memory:** Postgres chat history (10-message context window) Tools:** Document retrieval, Drive indexing, calculator Embedding Model:** Google Gemini text-embedding-004
by jellyfish
Template Description This description details the template's purpose, how it works, and its key features. You can copy and use it directly. Overview This is a powerful n8n "meta-workflow" that acts as a Supervisor. Through a simple Telegram bot, you can dynamically create, manage, and delete countless independent, AI-driven market monitoring agents (Watchdogs). This template is a perfect implementation of the "Workflowception" (workflow managing workflows) concept in n8n, showcasing how to achieve ultimate automation by leveraging the the n8n API. How It Works ? Telegram Bot Interface: Execute all operations by sending commands to your own Telegram Bot: /add SYMBOL INTERVAL PROMPT: Add a new monitoring task. /delete SYMBOL: Delete an existing monitoring task. /list: List all currently running monitoring tasks. /help: Get help information. Use Telegram Bot to control The watchdog workfolw created in the below Dynamic Workflow Management: Upon receiving an /add command, the Supervisor system reads a "Watchdog" template, fills in your provided parameters (like trading pair and time interval), and then automatically creates a brand new, independent workflow via the n8n API and activates it. Persistent Storage: All monitoring tasks are stored in a PostgreSQL database, ensuring your configurations are safe even if n8n restarts. The ID of each newly created workflow is also written back to the database to facilitate future deletion operations. AI-Powered Analysis: Each created "Watchdog" workflow runs on schedule. It fetches the latest candlestick chart by calling a self-hosted tradingview-snapshot service. This service, available at https://github.com/0xcathiefish/tradingview-snapshot, works by simulating a login to your account and then using TradingView's official snapshot feature to generate an unrestricted, high-quality chart image. An example of a generated snapshot can be seen here: https://s3.tradingview.com/snapshots/u/uvxylM1Z.png. To use this, you need to download the Docker image from the packages in the GitHub repository mentioned above, and run it as a container. The n8n workflow then communicates directly with this container via an HTTP API to request and receive the chart snapshot. After obtaining the image, the workflow calls a multimodal AI model (Gemini). It sends both the chart image and your custom text-based conditions (e.g., "breakout above previous high on high volume" or "break below 4-hour MA20") to the AI for analysis, enabling truly intelligent chart interpretation and alert triggering. Key Features Workflowception: A prime example of one workflow using an API to create, activate, and delete other workflows. Full Control via Telegram: Manage your monitoring bots from anywhere, anytime, without needing to log into the n8n interface. AI Visual Analysis: Move beyond simple price alerts. Let an AI "read" the charts for you to enable complex, pattern-based, and indicator-based intelligent alerts. Persistent & Extensible: Built on PostgreSQL for stability and reliability. You can easily add more custom commands.
by Thiago Vazzoler Loureiro
Description This workflow vectorizes the TUSS (Terminologia Unificada da Saúde Suplementar) table by transforming medical procedures into vector embeddings ready for semantic search. It automates the import of TUSS data, performs text preprocessing, and uses Google Gemini to generate vector embeddings. The resulting vectors can be stored in a vector database, such as PostgreSQL with pgvector, enabling efficient semantic queries across healthcare data. What Problem Does This Solve? Searching for medical procedures using traditional keyword matching is often imprecise. This workflow enhances the search experience by enabling semantic similarity search, which can retrieve more relevant results based on the meaning of the query instead of exact word matches. How It Works Import TUSS data: Load medical procedure entries from the TUSS table. Preprocess text: Clean and prepare the text for embedding. Generate embeddings: Use Google Gemini to convert each procedure into a semantic vector. Store vectors: Save the output in a PostgreSQL database with the pgvector extension. Prerequisites An n8n instance (self-hosted). A PostgreSQL database with the pgvector extension enabled. Access to the Google Gemini API. TUSS data in a structured format (CSV, database, or API source). Customization Tips You can adapt the preprocessing logic to your own language or domain-specific terms. Swap Google Gemini with another embedding model, such as OpenAI or Cohere. Adjust the chunking logic to control the granularity of semantic representation. Setup Instructions Prepare a source (database or CSV) with TUSS data. You need at least two fields: CD_ITEM (Medical procedure code) DS_ITEM (Medical procedure description) Configure your Oracle or PostgreSQL database credentials in the Credentials section of n8n. Make sure your PostgreSQL database has pgVector installed. Replace the placeholder table and column names with your actual TUSS table. Connect your Google Gemini credentials (via OpenAI proxy or official connector). Run the workflow to vectorize all medical procedure descriptions.
by Dataki
BigQuery RAG with OpenAI Embeddings This workflow demonstrates how to use Retrieval-Augmented Generation (RAG) with BigQuery and OpenAI. By default, you cannot directly use OpenAI Cloud Models within BigQuery. Try it This template comes with access to a *public BigQuery table** that stores part of the n8n documentation (about nodes and triggers), allowing you to try the workflow right away: n8n-docs-rag.n8n_docs.n8n_docs_embeddings* ⚠️ *Important:* BigQuery uses the *requester pays model.* The table is small (~40 MB), and BigQuery provides *1 TB of free processing per month**. Running 3–4 queries for testing should remain within the free tier, unless your project has already consumed its quota. More info here: BigQuery Pricing* Why this workflow? Many organizations already use BigQuery to store enterprise data, and OpenAI for LLM use cases. When it comes to RAG, the common approach is to rely on dedicated vector databases such as Qdrant, Pinecone, Weaviate, or PostgreSQL with pgvector. Those are good choices, but in cases where an organization already uses and is familiar with BigQuery, it can be more efficient to leverage its built-in vector capabilities for RAG. Then comes the question of the LLM. If OpenAI is the chosen provider, teams are often frustrated that it is not directly compatible with BigQuery. This workflow solves that limitation. Prerequisites To use this workflow, you will need: A good understanding of BigQuery and its vector capabilities A BigQuery table containing documents and an embeddings column The embeddings column must be of type FLOAT and mode REPEATED (to store arrays) A data pipeline that generates embeddings with the OpenAI API and stores them in BigQuery This template comes with a public table that stores part of the n8n documentation (about nodes and triggers), so you can try it out: n8n-docs-rag.n8n_docs.n8n_docs_embeddings How it works The system consists of two workflows: Main workflow** → Hosts the AI Agent, which connects to a subworkflow for RAG Subworkflow** → Queries the BigQuery vector table. The retrieved documents are then used by the AI Agent to generate an answer for the user.
by Raz Hadas
This n8n template demonstrates how to automate stock market technical analysis to detect key trading signals and send real-time alerts to Discord. It's built to monitor for the Golden Cross (a bullish signal) and the Death Cross (a bearish signal) using simple moving averages. Use cases are many: Automate your personal trading strategy, monitor a portfolio for significant trend changes, or provide automated analysis highlights for a trading community or client group. 💡 Good to know This template relies on the Alpha Vantage API, which has a free tier with usage limits (e.g., API calls per minute and per day). Be mindful of these limits, especially if monitoring many tickers. The data provided by free APIs may have a slight delay and is intended for informational and analysis purposes. Disclaimer**: This workflow is an informational tool and does not constitute financial advice. Always do your own research before making any investment decisions. ⚙️ How it works The workflow triggers automatically every weekday at 5 PM, after the typical market close. It fetches a list of user-defined stock tickers from the Set node. For each stock, it gets the latest daily price data from Alpha Vantage via an HTTP Request and stores the new data in a PostgreSQL database to maintain a history. The workflow then queries the database for the last 121 days of data for each stock. A Code node calculates two Simple Moving Averages (SMAs): a short-term (60-day) and a long-term (120-day) average for both today and the previous day. Using If nodes, it compares the SMAs to see if a Golden Cross (short-term crosses above long-term) or a Death Cross (short-term crosses below long-term) has just occurred. Finally, a formatted alert message is sent to a specified Discord channel via a webhook. 🚀 How to use Configure your credentials for PostgreSQL and select them in the two database nodes. Get a free Alpha Vantage API Key and add it to the "Fetch Daily History" node. For best practice, create a Header Auth credential for it. Paste your Discord Webhook URL into the final "HTTP Request" node. Update the list of stock symbols in the "Set - Ticker List" node to monitor the assets you care about. The workflow is set to run on a schedule, but you can press "Test workflow" to trigger it manually at any time. ✅ Requirements An Alpha Vantage account for an API key. A PostgreSQL database to store historical price data. A Discord account and a server where you can create a webhook. 🎨 Customising this workflow Easily change the moving average periods (e.g., from 60/120 to 50/200) by adjusting the SMA_SHORT and SMA_LONG variables in the "Compute 60/120 SMAs" Code node. Modify the alert messages in the "Set - Golden Cross Msg" and "Set - Death Cross Msg" nodes. Swap out Discord for another notification service like Slack or Telegram by replacing the final HTTP Request node.
by txampa_n8n
Insert Notion Database Fields from a Public URL via WhatsApp How it works WhatsApp Trigger receives a message containing a public URL. The workflow extracts the URL and retrieves the page content (via Apify). The content is parsed and transformed into structured fields. A new record is created in Notion, mapping the extracted fields to your database properties. Setup steps Configure your WhatsApp credentials in the WhatsApp Trigger node. In the Search / URL Extraction step, adjust the input logic if your message format differs. Configure your Apify credentials (and actor/task) to scrape the target page. Connect your Notion database and map the extracted values in Properties. Customization Default example: Amazon/Goodreads/Casa del Libro book pages. Update the scraping/parsing logic to match your target sources (e.g., books, products, articles, recipes, news, or LinkedIn profiles). If you change the data model in Notion, update the Properties mapping accordingly in the final node.
by deAPI Team
Who is this for? Teams who upload meeting recordings to YouTube (unlisted or private) and want automated notes Project managers who need to track action items across recurring meetings Remote teams who want searchable, structured meeting notes in Notion Content teams repurposing recorded calls into documentation What problem does this solve? Meeting notes are either rushed, incomplete, or never written at all. This workflow removes that bottleneck — upload a recording to YouTube and get a structured Notion page with summary, action items, decisions, and key topics, plus a Slack notification, all within minutes. What this workflow does Monitors a YouTube channel via RSS for new video uploads Transcribes the video using deAPI (Whisper Large V3) directly from the YouTube URL — no file download or size limits AI Agent analyzes the transcript and extracts a title, summary, action items, decisions, and key topics Creates a structured meeting notes page in a Notion database Posts the summary and action items to a Slack channel Setup Requirements n8n instance** (self-hosted or n8n Cloud) deAPI account for video transcription Anthropic account for the AI Agent Notion workspace with a meeting notes database Slack workspace Installing the deAPI Node n8n Cloud: Go to **Settings → Community Nodes and toggle the "Verified Community Nodes" option Self-hosted: Go to **Settings → Community Nodes and install n8n-nodes-deapi Configuration Add your deAPI credentials (API key + webhook secret) Add your Anthropic credentials (API key) Set the Feed URL in the RSS trigger to your YouTube channel's RSS feed: https://www.youtube.com/feeds/videos.xml?channel_id=YOUR_CHANNEL_ID Add your Notion credentials and set the Database ID in the Notion node Add your Slack credentials and set the Channel in the Slack node Ensure your n8n instance is on HTTPS How to customize this workflow Change the AI model**: Swap Anthropic for OpenAI, Google Gemini, or any other LLM provider Adjust the note structure**: Modify the AI Agent system message to extract different fields (attendees, follow-up date, sentiment, etc.) Change the trigger**: Replace the RSS trigger with a Google Drive trigger or form upload for non-YouTube recordings Change the output destination**: Replace Notion with Google Docs, Confluence, or Airtable Change the notification**: Replace Slack with Microsoft Teams, email, or Discord Monitor multiple channels**: Duplicate the RSS trigger or use multiple feed URLs to track several YouTube channels
by browseract
🕵️♂️ Reddit Intelligence Monitor: AI-Powered Scraping with BrowserAct Automate your market research and competitor analysis with this powerful "Set and Forget" workflow. It monitors Reddit for specific keywords and competitor subreddits, uses BrowserAct for stealth scraping, analyzes the sentiment with AI, and delivers a daily intelligence digest to your Google Sheets. 💡 Key Features Powered by BrowserAct**: Leverages cloud browser automation to stealthily scrape Reddit data without getting blocked. Dual-Track Monitoring**: Simultaneously tracks "Brand Competitors" (Subreddits) and "Topic Keywords" (Search Results). AI Analysis**: Summarizes the top 3 trending posts into a single concise daily report, filtering out noise. Structured Archive**: Automatically cleans, formats, and archives intelligence with source links into Google Sheets. 🛠️ How it Works Config Read: Reads a list of monitoring targets from a Google Sheet. Route: Splits the task into two paths (Competitor vs. Keyword) based on input type. Scrape: BrowserAct navigates to the target Reddit pages and extracts the latest posts. Process: Custom Code nodes clean the data and merge top 3 posts into a single prompt. Analyze: AI Agent generates an executive summary for each topic. Archive: Final reports are appended to your "Report" Google Sheet. 📋 Setup Guide Google Sheets: Create a sheet with two tabs: Config: Columns keywords (for search terms) and competitor (for subreddit names). Report: Columns Date, Competitor/Keyword, Summary, Link. BrowserAct: Connect your BrowserAct credentials and ensure you have the Reddit scraping task template ready. AI Model: Configure the Google Gemini Chat Model (or swap for OpenAI). Schedule: Enable the Schedule Trigger for daily automated runs.
by Fabian Maume
AI chatbots are only as good as the data they learn from. Most large language models (LLM) rely only on their training datasets. If you want the chatbots to know more about your business, the best is to implement a retrieval-augmented generation (RAG) pipeline to train Gemini with your website data. This is what this workflow will help you to do. This workflow uses a scheduler to scrape a website on a regular basis using Apify; web pages are then indexed or updated in a Pinecone vector database. This allows the chatbot to provide accurate and up-to-date information. The workflow uses Google's Gemini AI for both embeddings and response generation. How does it work? This workflow is split into 2 sub-logics highlighted with green sticky notes: RAG Training logic Chatbot logic RAG training logic Use the Apify Website Content Crawler to retrieve all content from your website The Pinecone Vector Store node indexes the text chunk in a Pinecone index. The Embeddings Google Gemini node generates embeddings for each text chunk Chatbot logic The Chat Trigger node receives user questions through a chat interface. An AI Agent node handles those requests. The AI Agent node uses a Vector Store Tool node, linked to a Pinecone Vector Store node in query mode, to retrieve relevant text chunks from Pinecone based on the user's question. The AI Agent sends the retrieved information and the user's question to the Google Gemini Chat Model (gemini-pro). How to set up this template? All nodes with an orange sticky note require setup. Get your tools set up: 1 Google Cloud Project and Vertex AI API: Create a Google Cloud project. Enable the Vertex AI API for your project. Obtain a Google AI API key from Google AI Studio 2 Get an Apify account Create an Apify account 3 Pinecone Account: Create a free account on the Pinecone website. Obtain your API key from your Pinecone dashboard. Create an index named company-website in your Pinecone project. Configure credentials in your n8n environment for: Google Gemini(PaLM) Api (using your Google AI API key) Pinecone API (using your Pinecone API key) Setup trigger frequency: Edit the Schedule Trigger to match the frequency at which you wish to update your RAG If you want to train your chatbot only once, you can replace it with a click trigger. Set up the Apify node Authenticate (via OAuth or API) Set up your website URL in the JSON input FAQ What is RAG? RAG stands for retrieval-augmented generation. It is a technique that provides an AI model (such as a large language model) with additional data. That allows the LLM to give more up-to-date and topic-specific information. What is the difference between RAG and LLM? RAG is a way to complement an LLM by giving it more up-to-date information. You can think of the LLM as the CPU processing your question, and RAG as the hard drive providing information. Do I have to use my website as training data? No. Website Content Crawler can scrape any website. So you can, in theory, use this template to build a RAG for someone else. You can even combine data from multiple websites. Can I use another model other than Gemini? In theory, yes. You could replace the Gemini node with another LLM model. If you are looking for inspiration about RAG implementation with the Ollama model, check out this template.
by Rahul Joshi
📘 Description This workflow turns raw product inputs into a complete, launch-ready AI-generated social media campaign package. It accepts product details via webhook, sanitizes messy fields, generates a strategic campaign blueprint, produces Instagram captions, creates discovery-optimized hashtags, generates photorealistic commercial images, computes optimal posting times, assembles all outputs into a unified JSON package, and finally delivers the entire campaign to Slack. Multiple AI agents work in sequence to generate structured outputs — each parsed and validated using strict JSON schemas. Images produced by DALL·E 3 are uploaded to Cloudinary for hosting. A post-processing module then merges captions, images, hashtags, and schedules into a final payload. A robust error handler ensures every failure is captured and sent to Slack with diagnostic information. This workflow replaces an entire marketing team’s creative production pipeline, producing consistent, multi-asset campaign kits in minutes. ⚙️ What This Workflow Does (Step-by-Step) 🟢 Receive Product Details via Webhook Captures incoming product data including name, description, benefits, audience, and brand voice. 🧹 Clean & Normalize Product Input Fields Sanitizes escaped characters, trims whitespace, and prepares stable fields for AI consumption. 🧠 Generate Campaign Blueprint Using AI Creates a full strategic blueprint in structured JSON: • Article summary • Insights • Tone and target audience mapping • Platform-specific post objects 🧠 LLM Engine + Structured Parser for Blueprint Ensures blueprint output is clean, validated JSON aligned with schema. ✍️ Generate Instagram Captions Using AI Produces five short, conversion-ready captions + CTAs, based on blueprint insights. 🧠 Caption LLM + Structured Parser Validates caption schema for downstream use. #️⃣ Generate Hashtag Set Using AI Creates 12–18 optimized hashtags using discovery strategy (broad, mid, niche). 🧠 Hashtag LLM + Parser Validates and ensures hashtags follow correct JSON structure. 🎨 Split Campaign Posts for Image Generation Breaks out each post’s image prompt for independent asset creation. 🖼️ Generate Social Media Image Using AI Uses DALL·E 3 to create ultra-realistic, 8K-style commercial visuals tailored to the campaign. ☁️ Upload Generated Image to Cloudinary Uploads rendered images and retrieves secure public URLs. 🕒 Generate Optimal Posting Schedule Using AI Recommends best posting time per platform (Asia/Kolkata timezone) + reasoning. 🧠 Schedule LLM + Parser Ensures a structured schedule schema with platform, time, and rationale. 🔀 Combine All Campaign Assets Merges: • Cloudinary image URLs • Captions + CTAs • Hashtag set • Posting schedule into one final dataset. 🧩 Prepare Final Campaign Package JSON Constructs production-ready unified JSON: images, captions, hashtags, schedule. 💬 Send Final Campaign Package to Slack Delivers formatted campaign output with: • Image URLs • Captions + CTAs • Hashtags • Posting times for immediate creative review. 🚨 Error Handler Trigger → Slack Alert Captures workflow failures and sends structured debugging info to Slack. 🧩 Prerequisites • OpenAI API (GPT-4o + DALL·E 3) • Cloudinary account (image hosting) • Slack bot token • Valid webhook endpoint • Clean product input JSON 💡 Key Benefits ✔ Full AI-generated multi-asset campaign in minutes ✔ Eliminates manual copywriting, design, and planning ✔ Ensures structured, reliable JSON at every stage ✔ Creates polished commercial visuals instantly ✔ Produces posting strategy tailored to audience behavior ✔ Unified campaign delivery straight to Slack 👥 Perfect For Consumer brands launching fast cycles Agencies needing rapid campaign generation Teams without in-house designers/copywriters Influencers or D2C founders wanting automated content production