{
  "name": "Generate conference synthetic personas with Slack, Gemini and Salesforce",
  "nodes": [
    {
      "id": "a21ef05a-1d8c-44ea-b16d-809809c0c8a7",
      "name": "Receive Slash Command",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -1216,
        448
      ]
    },
    {
      "id": "cd617b17-9a95-48e2-84e8-fe2762408762",
      "name": "Acknowledge Slack Command",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        -1008,
        368
      ]
    },
    {
      "id": "2d203524-3225-42af-b74c-e181b7358542",
      "name": "Parse Command Args",
      "type": "n8n-nodes-base.code",
      "position": [
        -1008,
        528
      ]
    },
    {
      "id": "cc5b24c7-ca6e-407d-82e4-ecdb32896bbb",
      "name": "Route by CRM Source",
      "type": "n8n-nodes-base.switch",
      "position": [
        -720,
        512
      ]
    },
    {
      "id": "99f98c74-56a2-48ed-9e2e-625d456d237a",
      "name": "Fetch HubSpot Contacts",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -480,
        320
      ]
    },
    {
      "id": "9b9bb280-37aa-4f22-a894-15269df30c7b",
      "name": "Fetch Salesforce Contacts",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -480,
        512
      ]
    },
    {
      "id": "82281f12-bcbd-468c-aa1e-c8219b648f8d",
      "name": "Fetch Google Sheets Contacts",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -480,
        720
      ]
    },
    {
      "id": "07e135ad-53f1-41bf-8612-084ac75511d3",
      "name": "Normalize Audience Data",
      "type": "n8n-nodes-base.code",
      "position": [
        -240,
        512
      ]
    },
    {
      "id": "8a873198-d62d-4482-8f9b-5645bb92ad3a",
      "name": "Generate Persona Archetypes",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        0,
        400
      ]
    },
    {
      "id": "3836dbe0-8c48-4a9a-8960-e1612f1a5c7e",
      "name": "Google Gemini for Personas",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        0,
        624
      ]
    },
    {
      "id": "20a6ccbc-2ed3-4750-ac1f-c0a3dd5f0ccb",
      "name": "Parse Persona JSON",
      "type": "n8n-nodes-base.code",
      "position": [
        240,
        400
      ]
    },
    {
      "id": "0e986611-c7ad-4b75-aebe-b39eb64e7055",
      "name": "Store Persona in Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        480,
        400
      ]
    },
    {
      "id": "6a6413c9-3eed-4bc3-b35c-56482facd117",
      "name": "Format Persona Card",
      "type": "n8n-nodes-base.code",
      "position": [
        480,
        592
      ]
    },
    {
      "id": "f126a2c8-666c-43a7-96fd-8f4dbde6d930",
      "name": "Post Persona to Slack",
      "type": "n8n-nodes-base.slack",
      "position": [
        720,
        592
      ]
    },
    {
      "id": "0a78c4fa-99e4-4c27-8206-a84fa37b4a61",
      "name": "Capture Thread Timestamp",
      "type": "n8n-nodes-base.code",
      "position": [
        960,
        592
      ]
    },
    {
      "id": "f5ed46c9-5d92-4783-9717-4c90f510a117",
      "name": "Run Structured Interview",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        1200,
        400
      ]
    },
    {
      "id": "0e942576-00d3-47f5-a5ea-b0ea6f8cc21a",
      "name": "Google Gemini for Auto-Interview",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        1200,
        624
      ]
    },
    {
      "id": "6668db23-49e1-45e0-8b72-835121499589",
      "name": "Format Interview Report",
      "type": "n8n-nodes-base.code",
      "position": [
        1504,
        400
      ]
    },
    {
      "id": "6766b486-713a-489b-b4c3-0aad6ee5a081",
      "name": "Post Interview Report to Slack",
      "type": "n8n-nodes-base.slack",
      "position": [
        1680,
        400
      ]
    },
    {
      "id": "d1d6087b-6a0b-4288-bdf0-8f474e38517d",
      "name": "Post Generation Summary",
      "type": "n8n-nodes-base.slack",
      "position": [
        1872,
        400
      ]
    },
    {
      "id": "sticky-intro-gen",
      "name": "Intro — Persona Generator",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1904,
        112
      ],
      "parameters": {
        "width": 600,
        "height": 820,
        "content": "## Digital Doppelgänger — Persona Generator\n\n### **What it does:**\nGenerates AI-powered synthetic personas (Digital Doppelgängers) from your CRM attendee data that event teams can interview before the"
      }
    },
    {
      "id": "sticky-slash-setup",
      "name": "Section — Slash Command",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1280,
        112
      ],
      "parameters": {
        "width": 484,
        "height": 592,
        "content": "## 1. Slack Slash Command\n\nReceives `/doppelganger` command with args:\n- **Event name** (quoted if spaces)\n- **Persona count** (3-10, default 5)\n- **CRM source** (`hubspot`, `salesforce`, `sheets`)\n\nA"
      }
    },
    {
      "id": "sticky-crm",
      "name": "Section — CRM Integration",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -768,
        112
      ],
      "parameters": {
        "width": 672,
        "height": 796,
        "content": "## 2. CRM Data Fetch\n\nRoutes to the correct CRM API based on source parameter:\n- **HubSpot** — Contact search by event tag\n- **Salesforce** — SOQL query on CampaignMember\n- **Google Sheets** — Direct "
      }
    },
    {
      "id": "sticky-ai-gen",
      "name": "Section — AI Persona Engine",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -64,
        112
      ],
      "parameters": {
        "width": 460,
        "height": 680,
        "content": "## 3. AI Persona Engine\n\nGoogle Gemini Flash Lite clusters attendee data into distinct archetypes and generates detailed synthetic personas with:\n- Motivations, pain points, decision style\n- Budget au"
      }
    },
    {
      "id": "sticky-delivery",
      "name": "Section — Store & Deliver",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        432,
        112
      ],
      "parameters": {
        "width": 680,
        "height": 680,
        "content": "## 4. Store & Deliver\n\nEach persona is:\n1. Stored in the `Digital Doppelgängers` Google Sheet (Personas tab)\n2. Formatted as a rich Slack Block Kit card\n3. Posted to the requesting channel\n\nInterview "
      }
    },
    {
      "id": "sticky-auto-interview",
      "name": "Section — Auto-Interview",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1152,
        112
      ],
      "parameters": {
        "width": 944,
        "height": 680,
        "content": "## 5. Structured Auto-Interview\n\nEach persona is automatically interviewed with **14 questions** across 5 categories:\n\n| Category | Questions | Covers |\n|---|---|---|\n| **Content & Format** | Q1-Q3 | "
      }
    },
    {
      "id": "sticky-contact-gen",
      "name": "Contact — Braia Labs",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2128,
        112
      ],
      "parameters": {
        "width": 560,
        "height": 1176,
        "content": "## Was this helpful? Get in touch!\n\n[![clic](https://vptkuqoipqbebipqjnqw.supabase.co/storage/v1/object/public/Milo%20Bravo/seeAxWUupcOOXY5tntexZ_video.gif)](https://tally.so/r/EkKGgB)\n\nI really hope "
      }
    }
  ],
  "connections": {
    "Parse Command Args": {
      "main": [
        [
          {
            "node": "Route by CRM Source",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse Persona JSON": {
      "main": [
        [
          {
            "node": "Store Persona in Google Sheets",
            "type": "main",
            "index": 0
          },
          {
            "node": "Format Persona Card",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Format Persona Card": {
      "main": [
        [
          {
            "node": "Post Persona to Slack",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Route by CRM Source": {
      "main": [
        [
          {
            "node": "Fetch HubSpot Contacts",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Fetch Salesforce Contacts",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Fetch Google Sheets Contacts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Post Persona to Slack": {
      "main": [
        [
          {
            "node": "Capture Thread Timestamp",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Receive Slash Command": {
      "main": [
        [
          {
            "node": "Acknowledge Slack Command",
            "type": "main",
            "index": 0
          },
          {
            "node": "Parse Command Args",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch HubSpot Contacts": {
      "main": [
        [
          {
            "node": "Normalize Audience Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Format Interview Report": {
      "main": [
        [
          {
            "node": "Post Interview Report to Slack",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Normalize Audience Data": {
      "main": [
        [
          {
            "node": "Generate Persona Archetypes",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Capture Thread Timestamp": {
      "main": [
        [
          {
            "node": "Run Structured Interview",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Run Structured Interview": {
      "main": [
        [
          {
            "node": "Format Interview Report",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Salesforce Contacts": {
      "main": [
        [
          {
            "node": "Normalize Audience Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini for Personas": {
      "ai_languageModel": [
        [
          {
            "node": "Generate Persona Archetypes",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Generate Persona Archetypes": {
      "main": [
        [
          {
            "node": "Parse Persona JSON",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Google Sheets Contacts": {
      "main": [
        [
          {
            "node": "Normalize Audience Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Post Interview Report to Slack": {
      "main": [
        [
          {
            "node": "Post Generation Summary",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini for Auto-Interview": {
      "ai_languageModel": [
        [
          {
            "node": "Run Structured Interview",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    }
  }
}