Receive and Reply Across WhatsApp, Instagram, and Facebook Messenger with Fiwano

Overview

This workflow provides a minimal yet powerful integration for receiving and replying to messages from WhatsApp, Instagram, and Facebook Messenger through a single unified trigger and action set. By leveraging the Fiwano community node, it normalizes incoming messages from all three Meta-owned channels into a consistent JSON payload, allowing you to build routing, CRM, helpdesk, or AI logic without worrying about platform-specific APIs. The workflow demonstrates a simple text/attachment branching pattern and sends automated replies back to the sender.

Step-by-Step Breakdown

  1. Fiwano Trigger (n8n-nodes-fiwano.fiwanoTrigger) — Fiwano API credential

    • Parameters: autoSetup set to "all". This automatically registers the workflow to receive events from every active channel connected to your Fiwano account. No manual webhook URL configuration is needed.
    • What it does: Listens for incoming messages (text, images, audio, video, documents, etc.) from WhatsApp, Instagram, and Facebook Messenger. The trigger outputs a normalized JSON object with fields like channel_id, channel_type, data.from, data.type, data.text, and data.media.
  2. Example — route by message type (n8n-nodes-base.if) — No auth

    • Parameters: Condition checks if $json.data.type equals "text". The IF node splits the flow into two branches: true (text messages) and false (attachments).
    • What it does: Routes incoming messages based on their type. This is a simple example; you can replace it with any custom logic (e.g., CRM lookup, sentiment analysis, or AI classification).
  3. Example — send text reply (n8n-nodes-fiwano.fiwano) — Fiwano API credential

    • Parameters:
      • channelId: taken from $json.channel_id (the channel the message came from).
      • recipient: taken from $json.data.from (the sender's ID).
      • text: a dynamic string "You said: \"{{ $json.data.text }}\" 👋".
    • What it does: Sends a simple text reply echoing the original message back to the sender on the same channel.
  4. Example — send attachment reply (n8n-nodes-fiwano.fiwano) — Fiwano API credential

    • Parameters:
      • channelId: same as above.
      • recipient: same as above.
      • text: a dynamic string acknowledging the attachment type (e.g., "Got your {{ $json.data.type}} 📎 — {{ ($json.data.media || {}).mime_type || 'attachment' }}. Thanks!").
    • What it does: Sends a reply that acknowledges the attachment (image, image, video, etc.) and thanks the sender.

Setup Instructions

  1. Install the Fiwano community node: In your n8n editor, go to Settings → Community Nodes and install the verified package n8n-nodes-fiwano.
  2. Create a Fiwano API credential: Add a new credential of type **Fiwano API. You will need a Fiwano account. Obtain your API key from the Fiwano portal.
  3. Configure the trigger: Add the credential to the Fiwano Trigger node. Optionally set a Webhook Secret on the credential to verify incoming signatures for security.
  4. Save and activate the workflow. The trigger will automatically register for all active channels. Ensure your n8n instance is publicly accessible (e.g., via a public URL or tunnel).
  5. Connect your channels: If you haven't already, connect your WhatsApp, Instagram, and/or Facebook Messenger channels through the Fiwano portal. Re-activate the workflow after adding new channels.

Use Cases and Variations

  • Customer Support: Replace the simple echo with a CRM lookup (e.g., HubSpot, Zendesk) to fetch customer history and assign tickets.
  • AI Chatbot: Connect the IF node to an AI node (e.g., OpenAI, Anthropic) to generate intelligent replies based on message content.
  • Multi-channel Helpdesk: Route messages to different Slack channels or email based on channel_type or keywords.
  • Order Confirmation: If the message contains an order ID, trigger a database lookup and send back order status.
  • Attachment Processing: Use the attachment branch to download media via HTTP Request and process it (e.g., OCR, image recognition).

This workflow is a foundation — the middle logic can be replaced with any n8n node to fit your business needs.

6 nodesmanual triggerSocial Media
Sticky NoteIFFiwano

Workflow JSON

{
  "id": "fiwano-unified-receive-send-starter",
  "name": "Receive and Send Messages Across WhatsApp, Instagram and Facebook Messenger with Fiwano",
  "nodes": [
    {
      "parameters": {
        "content": "## Receive → Any Logic → Send\n### WhatsApp · Instagram DM · Facebook Messenger\n\n**One Trigger/Action node set for three channels.** Fiwano normalizes messages received over the official Meta APIs, so the same n8n fields and nodes work across all three channels.\n\nThis workflow is a minimal integration example:\n\n`Fiwano Trigger → your logic → Fiwano Send`\n\nThe included text and attachment branches only demonstrate receiving, reading the normalized payload, and sending a reply. Replace the middle with any routing, CRM, helpdesk, business-rule, database, or AI logic.\n\n### Before you start\nConnect at least one channel through the [Fiwano portal](https://fiwano.com) or Fiwano's channel-connection API. The authorization flow simplifies connecting your own or client channels without creating and reviewing a separate Meta app for the workflow.\n\n### Setup\n1. Install the verified **n8n-nodes-fiwano** community package from the n8n editor.\n2. Add your **Fiwano API** credential to the Trigger and both example send nodes.\n3. *(Recommended)* Set a **Webhook Secret** on that credential so the Trigger can verify incoming signatures.\n4. **Save and activate** the workflow.\n\nThe Trigger uses **Auto-Setup → All Active Channels** to register this workflow for every active channel. Re-activate after connecting another channel. Keep **Event Types** on *Message Received*. n8n must be publicly reachable.\n\n[Fiwano n8n documentation](https://fiwano.com/documentation/n8n)",
        "height": 1030,
        "width": 520,
        "color": 5
      },
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -496,
        192
      ],
      "id": "bb2c0002-0002-4000-8000-000000000001",
      "name": "About this workflow"
    },
    {
      "parameters": {
        "autoSetup": "all"
      },
      "type": "n8n-nodes-fiwano.fiwanoTrigger",
      "typeVersion": 1,
      "position": [
        128,
        432
      ],
      "id": "bb2c0002-0002-4000-8000-000000000002",
      "name": "Fiwano Trigger"
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict",
            "version": 1
          },
          "conditions": [
            {
              "id": "is-text",
              "leftValue": "={{ $json.data.type }}",
              "rightValue": "text",
              "operator": {
                "type": "string",
                "operation": "equals"
// ... truncated (copy to see full JSON)

How to Import This Workflow

  1. 1Copy the workflow JSON above using the Copy Workflow JSON button.
  2. 2Open your n8n instance and go to Workflows.
  3. 3Click Import from JSON and paste the copied workflow.

Don't have an n8n instance? Start your free trial at n8nautomation.cloud

Related Templates

AI Viral Video Creator from Telegram with Voice & Multi-Platform Posting

🚀 Automatically Generate and Publish Viral TikTok-Style Videos from a Simple Telegram Message This workflow transforms a single Telegram message containing a photo and a theme (caption) into a fully-produced, AI-generated talking-head video optimized for viral social media content. It leverages Perplexity for trend research, OpenAI GPT-4 for script and caption generation, ElevenLabs for realistic voice synthesis, and FAL.ai's VEED Fabric model to create a lip-synced avatar video from the photo. The final video, along with an engaging caption and relevant hashtags, is saved to Google Sheets for tracking and then automatically published to up to nine social media platforms—TikTok, YouTube, Instagram, LinkedIn, Facebook, Twitter (X), Threads, Pinterest, and Bluesky—via the Blotato integration. This is an end-to-end content creation pipeline perfect for creators, marketers, and businesses who want to maintain a consistent, high-frequency posting schedule without manual video editing. It reduces the time from idea to published video to under 5 minutes. 📋 Node-by-Node Breakdown Telegram Trigger (Telegram Bot Token) — Listens for incoming messages containing a photo and caption. The trigger activates on updates. No additional filtering is applied; every photo with a caption will start the workflow. Workflow Configuration (No auth) — A static Set node that stores API keys and configuration values (ElevenLabs API key, voice ID, FAL API key, and the Perplexity model name) as workflow variables for easy maintenance. Extract Photo and Theme (No auth) — Extracts the largest photo file ID from the Telegram message and the caption (or text) as the theme. Falls back to "viral content" if no caption is provided. Get Photo File from Telegram (Telegram Bot Token) — Uses the Telegram Bot API to download the photo file specified by the file ID extracted in the previous step. Build Public Image URL (No auth) — Uploads the downloaded photo to to obtain a publicly accessible URL. This URL is later used by FAL.ai's VEED Fabric model. Search Trends with Perplexity (Perplexity API key) — Sends a query to Perplexity AI asking for the top 3 current viral trends related to the user's theme. The model is configured dynamically from the workflow configuration node. Generate Script with GPT-4 (OpenAI API key) — Uses OpenAI GPT-4o-mini to generate a 30-second TikTok script based on the trends found by Perplexity and the original theme. The prompt enforces a hook in the first 2 seconds and conversational tone. ElevenLabs Voice Synthesis (API key in header) — Sends the generated script to ElevenLabs' text-to-speech API with the configured voice ID, producing an MP3 audio file. Uses header for authentication. Convert .mpga to .mp3 (No auth) — A JavaScript Code node that renames the binary audio file from to and sets the correct MIME type, ensuring compatibility with downstream nodes. Upload Audio to Public URL (No auth) — Uploads the MP3 audio to to make it publicly accessible for FAL.ai. FAL.ai Video Generation (API key in header) — Sends a request to FAL.ai's VEED Fabric 1.0 endpoint with the public image URL and audio URL to generate a talking-head lip-sync video at 480p resolution. Authentication uses the header with the FAL API key. Wait for VEED (No auth) — A Wait node that pauses execution for 10 minutes to allow the video generation to complete. The node uses polling via webhook (not active here) but is configured as a timed wait. Download VEED Video (API key in header) — Periodically queries the FAL.ai request status endpoint (using the request ID from the generation response) to retrieve the completed video URL. Generate Caption with GPT-4 (OpenAI API key) — A second OpenAI node that creates an engaging TikTok caption with trending hashtags based on the same theme and trends. Outputs only the caption text. Save to Google Sheets (Google Sheets OAuth2) — Appends a new row to a Google Sheet with columns: IDEA (original theme), CAPTION, AUDIO URL, IMAGE URL, VIDEO URL. The sheet and document ID are expected to be configured via resource locator or expression. Send a video (Telegram Bot Token) — Sends the generated video back to the original Telegram chat as a confirmation. Upload Video to BLOTATO (Blotato API key) — Uploads the video file to Blotato's media storage, obtaining a hosted URL for distribution. TikTok / YouTube / LinkedIn / Facebook / Instagram / Twitter (X) / Threads / Bluesky / Pinterest (Blotato API key) — Nine parallel Blotato nodes that each publish the video to their respective social media accounts. Each node uses pre-configured account IDs (list mode) and the generated caption. YouTube optionally sets the video to "private" and disables subscriber notifications. Merge1 (No auth) — A Choose Branch merge node that waits for all nine social media publishing branches to complete before continuing. Update Status to "DONE" (Google Sheets OAuth2) — Updates the corresponding row in the Google Sheet (matched by video URL) to set the STATUS column to "DONE". 🔧 Setup Instructions To use this workflow, you'll need the following accounts and API keys: Telegram — Create a bot via @BotFather and get the bot token. Use it in the Telegram Trigger and Telegram nodes. ElevenLabs — Sign up at elevenlabs.io, generate an API key, and clone or select a voice. Note the Voice ID. FAL.ai — Sign up at fal.ai, create an API key from the dashboard. The workflow uses the VEED Fabric 1.0 model – no separate VEED subscription is needed. Perplexity AI — Sign up at perplexity.ai, get an API key from settings. OpenAI — Sign up at platform.openai.com, create an API key with access to GPT-4o-mini. Google Sheets — Create a Google Sheet with the required columns (IDEA, URL IMAGE, URL AUDIO, URL VIDEO, CAPTION, STATUS). Set up Google Sheets OAuth2 credentials in n8n. Blotato — Sign up at blotato.com, get an API key from settings. Install the community node in n8n (Settings → Community Nodes). Connect each social media account within Blotato to obtain account IDs. tmpfiles.org — No account required; the service is used for temporary file hosting. After obtaining all keys, update the Workflow Configuration node with your values and configure credentials for each API node (Telegram, Perplexity, OpenAI, Google Sheets, Blotato). The sticky notes in the canvas provide step-by-step visual guidance. 💡 Use Cases & Variations Content Repurposing: The workflow can be adapted to repurpose a blog post or article into a short video by feeding the text as a theme. Brand Voice: Customize the ElevenLabs voice to match your brand's tone. Trend-Driven Campaigns: Use Perplexity with different prompts to focus on niche topics (e.g., "tech startups", "healthy recipes"). Platform-Specific Formatting: Modify the caption generation prompt to include platform-specific elements (e.g., LinkedIn professional tone, Twitter character limit). Scheduling: Add a Schedule Trigger to run the workflow periodically with pre-defined themes from a spreadsheet instead of Telegram. Analytics: Extend the Google Sheet with additional columns for engagement metrics by integrating with social media analytics APIs. This workflow is fully modular; you can remove any of the Blotato publishing nodes if you only need specific platforms.

35 nodes

AI-Powered Social Media Post Automation from Google Trends

AI-Powered Social Media Post Automation from Google Trends This workflow automatically generates and publishes social media posts based on trending Google search queries. It combines Google Trends data, AI content generation, and multi-platform publishing to keep your social channels active with relevant, engaging content without manual effort. The workflow runs twice daily (at 6 AM and 6 PM) and follows a pipeline: fetch trending keywords → select the best topic → generate a human-like post using Perplexity AI → publish to X (Twitter), Facebook, and LinkedIn → log the activity in Google Sheets. This is ideal for marketers, social media managers, and content creators who want to maintain a consistent posting schedule with minimal intervention. How It Works Schedule Trigger — Runs the workflow twice daily at 6 AM and 6 PM (no auth required). Google Trends (HTTP Request) — Fetches related queries from Google Trends via SerpAPI. Uses API Key auth (the parameter is passed as a query parameter). It retrieves rising queries for the keyword "ai agents" in the US over the last 3 days. 2 Most Trending (Set) — Extracts the top two rising queries from the Google Trends response and structures them into a clean JSON object with and keys. High search volume keywords (Code) — Filters the top related queries to include only those with an extracted value (search volume increase) greater than 30, and joins them into a comma-separated string. Choosing Topic (OpenAI) — Uses GPT-3.5-turbo to select the most relevant keyword from the two trending options, based on the client's SEO goals and trendiness. Requires OpenAI API key. Research Topic- Perplexity (HTTP Request) — Sends the chosen topic to Perplexity's API (sonar-pro model) to generate a complete LinkedIn post. Uses Header Auth (HTTP Header Auth) with your Perplexity API key. The prompt instructs the AI to write a human-like, engaging post with Unicode formatting, bullet points, and a call-to-action. Wait — Pauses for 10 seconds to ensure the AI generation is complete and to avoid rate limits. Split Out — Splits the AI-generated content from the Perplexity response into separate items for each social platform. X1 (Twitter) — Publishes the post to X (Twitter) using OAuth2 authentication. Facebook Graph API1 — Publishes the post to a Facebook Page using OAuth2 authentication. LinkedIn1 — Publishes the post to LinkedIn using Community Management authentication (OAuth2). Google Sheets2 — Appends or updates a row in Google Sheets with the topic, AI output, status, and date posted. Uses OAuth2 authentication. Setup Instructions To use this workflow, you'll need accounts and credentials for the following services: SerpAPI — Sign up at serpapi.com and get an API key. Replace in the Google Trends node. OpenAI — Create an API key at platform.openai.com. Add it as a credential in n8n. Perplexity — Get an API key from perplexity.ai and set it as an HTTP Header Auth credential. X (Twitter) — Create a Twitter app and obtain OAuth2 credentials. Facebook — Create a Facebook app and get a Page Access Token with permission. LinkedIn — Create a LinkedIn app and get a Community Management token. Google Sheets — Create a Google Cloud project, enable Sheets API, and set up OAuth2 credentials. Replace the document ID and sheet name in the Google Sheets node. After setting up credentials, update the Google Sheets document ID and sheet name, and configure the LinkedIn person ID (replace ). Use Cases and Variations Content Marketing — Automate daily posting of trending topics to multiple platforms, saving hours of manual research and writing. SEO Blogging — Modify the workflow to generate full blog posts instead of social media posts and publish to a CMS like WordPress. Multi-Client Management — Adapt the workflow to handle multiple clients by adding a loop or using a different Google Sheets row for each client. Custom Keywords — Change the parameter in the Google Trends node to target different niches or industries. Additional Platforms — Add more social media nodes (e.g., Instagram, Pinterest) by connecting them to the Split Out node. Human Review — Insert a manual approval step (e.g., using the Wait node or a Slack notification) before publishing to ensure content quality.

18 nodes

Cross-post YouTube Uploads to Facebook

Cross-post YouTube Uploads to Facebook This workflow provides a complete skeleton for a Cross-post YouTube Uploads to Facebook using n8n's AI nodes. It is triggered via a webhook, processes incoming data by splitting text, generating embeddings with OpenAI, storing and querying vectors in Pinecone, and finally running an Anthropic-powered agent to produce outputs. Results are logged to Google Sheets, and errors are sent to a Slack channel. Node-by-Node Breakdown Webhook Trigger (No auth) — Listens for incoming HTTP POST requests at a specified path (). This is the entry point; you can later change to a YouTube trigger or schedule. Text Splitter (No auth) — Splits incoming text into chunks of 400 characters with 40-character overlap (, ). Prepares data for embedding. Embeddings (OpenAI API Key auth) — Uses the model to generate vector embeddings for each text chunk. Pinecone Insert (Pinecone API Key auth) — Inserts the embeddings into a Pinecone index named . This stores the knowledge base. Pinecone Query (Pinecone API Key auth) — Queries the same Pinecone index to retrieve relevant vectors based on new incoming data. Vector Tool (No auth) — Wraps the Pinecone query into a tool that the AI agent can call to fetch context from the vector store. Window Memory (No auth) — Maintains a short-term conversational memory (buffer window) so the agent can reference previous interactions. Chat Model (Anthropic API Key auth) — Uses an Anthropic language model (e.g., Claude) to generate responses. Configured with no additional options. RAG Agent (No auth) — The central AI agent that orchestrates the workflow. It receives a system message "You are an assistant for Cross-post YouTube Uploads to Facebook" and can use the Vector Tool and Memory. Its output goes to the next node. Append Sheet (Google Sheets OAuth2) — Appends the agent's response (under column "Status") to a Google Sheet named "Log" in the spreadsheet specified by . The column mapping is defined below. Slack Alert (Slack OAuth2) — On error (connected to the output of the RAG Agent), sends a message to channel with the error text. Setup Instructions To use this workflow, you will need accounts and credentials for the following services: OpenAI – Generate an API key from platform.openai.com. Add it as an n8n credential of type "OpenAI API". Anthropic – Obtain an API key from console.anthropic.com and create an "Anthropic API" credential. Pinecone – Create a Pinecone account and index named . Get the API key and environment, then set up a "Pinecone API" credential in n8n. Google Sheets – Enable the Google Sheets API in your Google Cloud project. Create OAuth2 credentials (desktop app or web) and add them as a "Google Sheets OAuth2" credential in n8n. Slack – Create a Slack app with the scope. Install it to your workspace and add the bot token as a "Slack OAuth2" credential. After setting up credentials, update the workflow: Replace in the Google Sheets node with your actual spreadsheet ID. Adjust the Pinecone index name if you created a different one. Modify the webhook path or replace it with a scheduled trigger or YouTube trigger. Use Cases and Variations Cross-posting – Replace the webhook with a YouTube trigger (e.g., "When a video is published") and add an HTTP Request node to post to the Facebook Graph API. Use the RAG Agent to generate captions or summaries. Customer Support Chatbot – Change the webhook to a manual form or chat trigger. Load FAQ documents into Pinecone and let the agent answer user queries. Content Summarization – Feed long articles via webhook, have the agent summarize them, and log the summary to Google Sheets. Error Monitoring – Replace the webhook with a monitoring tool (e.g., Sentry) and let the AI analyze error logs stored in Pinecone. This workflow is highly modular: you can swap the AI model (e.g., use OpenAI Chat instead of Anthropic), change the vector store (e.g., Qdrant or Weaviate), or add more tools like web search or calendar access.

12 nodes

Ready to automate with n8n?

Get affordable managed n8n hosting with 24/7 support.