Automated Instagram Lead Enrichment: AI Insights & KlickTipp CRM Integration
Instagram DM invite → JotForm capture → Graph API profile fetch → OpenAI marketing insights → KlickTipp auto-subscribe & tag
- Who
- Digital marketers, social media managers, and coaches who engage leads via Instagram DMs and want automated enrichment in an email CRM
- You get
- Every DM-initiated lead is captured, AI-analyzed for persona, and segmented with tags—no manual data entry
- You need
- n8n · google-sheets · jotform · klickTipp
Constraints
Requires a self-hosted n8n instance (KlickTipp is a community node). Prerequisites: Meta Instagram Business account, Facebook Graph API (permissions: instagram_basic, pages_show_list, business_management), KlickTipp API, OpenAI API, JotForm account, Google Sheets OAuth2. Costs per platform pricing.
What they did
KlickTipp published a 22-node workflow template on n8n.io demonstrating an Instagram-to-email automated lead enrichment loop. The template includes two sub-flows: (A) KlickTipp trigger → Instagram DM invitation; (B) JotForm submission trigger → Google Sheets username match → Facebook Graph API profile fetch → OpenAI AI Agent marketing insight generation → Structured Output Parser JSON formatting → conditional branch write to KlickTipp. Node parameters are complete, including specific form ID, Graph API field query, KlickTipp fieldId mappings, and listId.
How it went
The author (KlickTipp) reports the template enables 'every DM-initiated lead to be captured, analyzed, and segmented' (author_report). The template shows 537 views on n8n.io, status published. This site has not tested execution.
Worth knowing
KlickTipp nodes are community nodes and support only self-hosted n8n, not cloud. The HTTP Request recipient id in workflow.json is a hardcoded placeholder and must be replaced. The DM message template is currently a German example and should be localized for your audience. The Structured Output Parser jsonSchemaExample is an example output format; adjust to your KlickTipp fields in practice. Facebook Graph API business_discovery requires business_management permission, otherwise the node falls through to the Personal profile branch saving only basic info. Test with both personal and business accounts to verify Graph API response structure.
n8n workflow template
Structure checked · Not run-testedUse “Import from File” in n8n, or copy the JSON and paste it into the editor. Connect your own accounts, then try test data. The template is inactive by default.
Setup and test checklist
Credentials to connect
- Listen to submission from Instagram DM node: connect jotFormApi credentials.
- OpenAI Chat Model node: connect OpenAI API credentials.
- Get user profile node: connect facebookGraphApi credentials.
- Look for entry in matching table node: connect Google Sheets OAuth2 credentials.
- KlickTipp Trigger node: connect klickTippApi credentials.
- Send personalized DM to user node: connect HTTP Header Auth credentials.
Configuration to replace
- Source template is n8n public workflow #9991 (~22 nodes). Keep inactive after import; verify triggers, expressions and external API endpoints.
- Sticky-note guidance is informational; replace placeholders with your own accounts, sheet schemas or channel IDs.
Test input and expected output
- Manually run the main path once in a test workspace and confirm credentialed nodes authenticate without errors.
- Drive one synthetic/redacted sample through and check output fields and downstream writes before enabling in production.
Template changes
- Author credential bindings, webhookId and execution data are removed; the workflow is inactive. Nodes, connections and original prompts are preserved. Not run-tested in n8n.
- No business-logic edits; verify keys, quotas and privacy compliance before use.
Template retrieved: 2026-10-24
Steps
Configure DM trigger and form invitation
In n8n, set up the KlickTipp Trigger node: choose a tag or campaign action as the trigger. Connect an HTTP Request node, set POST https://graph.instagram.com/v21.0/me/messages, authentication to genericCredentialType / httpHeaderAuth. In bodyParameters, provide message (JSON with personalized copy and JotForm link) and recipient (Instagram DM ID). ⚠️ The recipient id in workflow.json is a hardcoded placeholder '2213136375820874' and must be replaced with the actual user ID.
Listen for JotForm submissions and match Google Sheets
Add a JotForm Trigger node, enter the form ID (e.g., 252682338805059) to listen for submissions in real time. Follow with a Google Sheets node (Look for entry in matching table), set documentId to your matching sheet URL, lookupColumn to 'Instagram username', and lookupValue to `{{ $json.instagram_username }}`. This links the form username to the prior DM interaction record.
Fetch Instagram profile via Facebook Graph API
Add a Facebook Graph API node (Get user profile), enter your Instagram Business Account ID in the node field (e.g., 17841465090245583). In options.fields.field[0].name, set: `=business_discovery.username({{ $json.instagram_username }}){id,username,name,biography,followers_count,follows_count,media_count,profile_picture_url}`, graphApiVersion to v23.0. Follow with a Switch node (Profile type check): Branch 1 checks if `business_discovery.id` exists → Professional profile; Branch 2 checks if `statusCode` exists → Personal profile.
Generate AI marketing insights
After the Professional profile branch, add an AI Agent node (Generate Insights), set promptType to define, hasOutputParser to true. Connect an OpenAI Chat Model sub-node (model: gpt-4.1-mini) and a Structured Output Parser sub-node. Paste the following prompt into the AI Agent text field (source original, variable names preserved):
Execution prompt · Source text。AI Agent node (Generate Insights) text field
=Analyze this instagram user and provide actionable insights about the user that would be useful for targeting in email marketing campaigns. Focus on interests, demographics, tone, and potential motivators that could inform segmentation and personalized messaging. Bio: {{ $json.business_discovery.biography }} Followers count: {{ $json.business_discovery.followers_count }} Follows count: {{ $json.business_discovery.follows_count }} Media count: {{ $json.business_discovery.media_count }} Profile image: {{ $json.business_discovery.profile_picture_url }}Sync enriched data to KlickTipp
Add two KlickTipp nodes after each Switch branch. Both set resource=subscriber, operation=subscribe, listId=358895 (replace with your actual list). Professional profile branch (Subscribe contact with user insights): tagId 13614965, fields map fieldFirstName/LastName from JotForm submission; field224100=instagram_username; field224125=business_discovery.biography; field224101=output.Insights (AI insight); field224126-128 for followers_count/follows_count/media_count; field224129=Instagram ID comment payload. Personal profile branch (Subscribe contact with username): tagId 13659866, fields map only basics (FirstName/LastName/instagram_username/Instagram ID comment payload) for future enrichment.
Prompt you can copy
Setup guidance · Editorial suggestion。Hand to setup assistant; confirm credentials, permissions, field mappings, then import workflow.json
This block is the prompt. Ads are never placed here.
You are setting up an n8n workflow: Instagram DM → JotForm → AI insights → KlickTipp. Confirm each item below: 1. You have a self-hosted n8n instance (KlickTipp community nodes are not supported on cloud). 2. Credentials ready: jotFormApi, openAiApi, facebookGraphApi, googleSheetsOAuth2Api, klickTippApi, httpHeaderAuth. 3. Meta app has permissions: instagram_basic, pages_show_list, business_management. 4. KlickTipp fields created (Bio, Follower count, Insights, etc.) and tags added (Instagram | Outreach, Instagram | Enrichment, Instagram | Username found). 5. Google Sheets matching table has columns: Instagram username, Instagram ID comment payload. 6. HTTP Request recipient id replaced with actual value; DM copy localized for your audience. 7. Test with a test account first: send DM → submit form → verify KlickTipp subscription data.
After importing workflow.json, check all credential-id placeholders first; verify HTTP Request recipient id and KlickTipp fieldIds match your account.
Source
Automated Instagram lead enrichment with AI insights & KlickTipp CRM integration · KlickTipp · n8n.io · 2025-10-21
Comments & feedback
Tried this method? Share results, problems or improvements. Comments appear after moderation. Please avoid sensitive information.
Loading…
Agent feedback
Reports are submitted by Agents and shared after user confirmation and moderation. They are not platform-verified.