{
  "workflow": {
    "id": 10627,
    "name": "Match users with financial aid programs using GPT 5-Nano with automatic letters & emails",
    "views": 15,
    "recentViews": 0,
    "totalViews": 15,
    "createdAt": "2025-11-08T09:48:05.993Z",
    "description": "## How It Works\nThe webhook receives incoming profiles and extracts relevant demographic, financial, and credential data. The workflow then queries the programs database to identify suitable options, while the AI generates personalized recommendations based on eligibility and preferences. A formal recommendation letter is created, followed by a drafted outreach email tailored to coordinators. Parsers extract structured data from the letters and emails, a Slack summary is prepared for internal visibility, and the final response is sent to the appropriate recipients.\n\n## Setup Steps\n1. Configure AI agents by adding OpenAI credentials and setting prompts for the Program Matcher, Letter Writer, and Email Drafter.\n2. Connect the programs database (Airtable or PostgreSQL) and configure queries to retrieve matching program data.\n3. Set up the webhook by defining the trigger endpoint and payload structure for incoming profiles.\n4. Configure JSON parsers to extract relevant information from profiles, letters, and emails.\n5. Add the Slack webhook URL and define the summary format for generated communications.\n\n\n## Prerequisites\n- OpenAI API key\n- Financial programs database\n- Slack workspace with webhook\n- User profile structure (income, GPA, demographics)\n\n\n## Use Cases\n- Universities automating 500+ annual applicant communications\n- Scholarship foundations personalizing outreach at scale\n\n## Customization\n- Add multilingual support for international applicants\n- Include PDF letter generation with signatures\n\n## Benefits\nReduces communication time from 30 to 2 minutes per applicant, ensures consistent professional quality\n\n",
    "workflow": {
      "id": "XxXeOYCFGRYXivmJ",
      "meta": {
        "instanceId": "b91e510ebae4127f953fd2f5f8d40d58ca1e71c746d4500c12ae86aad04c1502"
      },
      "name": "GPT 5-Nano Financial Aid Matcher with Automated Letter and Email Generation",
      "tags": [],
      "nodes": [
        {
          "id": "55a90004-e1ec-46f3-ab96-654c481d9f25",
          "name": "Webhook - User Profile Input",
          "type": "n8n-nodes-base.webhook",
          "position": [
            432,
            128
          ],
          "webhookId": "3c98baaa-7476-4093-a217-ff11d3eb7ddf",
          "parameters": {
            "path": "financial-assistance",
            "options": {},
            "httpMethod": "POST",
            "responseMode": "responseNode"
          },
          "typeVersion": 2
        },
        {
          "id": "6852890a-c096-422e-ba1b-8e19d506c120",
          "name": "Extract User Profile",
          "type": "n8n-nodes-base.set",
          "position": [
            656,
            128
          ],
          "parameters": {
            "options": {},
            "assignments": {
              "assignments": [
                {
                  "id": "income",
                  "name": "income",
                  "type": "number",
                  "value": "={{ $json.body.income }}"
                },
                {
                  "id": "employment_status",
                  "name": "employment_status",
                  "type": "string",
                  "value": "={{ $json.body.employment_status }}"
                },
                {
                  "id": "household_size",
                  "name": "household_size",
                  "type": "number",
                  "value": "={{ $json.body.household_size }}"
                },
                {
                  "id": "needs",
                  "name": "needs",
                  "type": "string",
                  "value": "={{ $json.body.needs }}"
                },
                {
                  "id": "age",
                  "name": "age",
                  "type": "number",
                  "value": "={{ $json.body.age }}"
                },
                {
                  "id": "user_name",
                  "name": "user_name",
                  "type": "string",
                  "value": "={{ $json.body.user_name }}"
                },
                {
                  "id": "user_email",
                  "name": "user_email",
                  "type": "string",
                  "value": "={{ $json.body.user_email }}"
                },
                {
                  "id": "contact_number",
                  "name": "contact_number",
                  "type": "string",
                  "value": "={{ $json.body.contact_number }}"
                },
                {
                  "id": "address",
                  "name": "address",
                  "type": "string",
                  "value": "={{ $json.body.address }}"
                }
              ]
            }
          },
          "typeVersion": 3.4
        },
        {
          "id": "f81dc7d7-81da-4250-87a6-42671b7ae916",
          "name": "Financial Programs Database",
          "type": "n8n-nodes-base.set",
          "position": [
            880,
            128
          ],
          "parameters": {
            "options": {},
            "assignments": {
              "assignments": [
                {
                  "id": "programs_data",
                  "name": "programs_data",
                  "type": "string",
                  "value": "=[\n  {\n    \"program_name\": \"ComCare Short-to-Medium Term Assistance\",\n    \"authority\": \"Ministry of Social and Family Development (MSF)\",\n    \"type\": \"Government Grant\",\n    \"eligibility\": \"Singapore Citizens or PRs with household income ≤ $2,600 or per capita income ≤ $800\",\n    \"benefits\": \"Cash assistance, childcare subsidies, student care subsidies\",\n    \"website\": \"https://www.msf.gov.sg/assistance/Pages/ComCare-Short-to-Medium-Term-Assistance.aspx\",\n    \"contact_email\": \"msf_feedback@msf.gov.sg\",\n    \"income_threshold\": 2600,\n    \"categories\": [\"low-income\", \"family support\", \"childcare\", \"education\"]\n  },\n  {\n    \"program_name\": \"Workfare Income Supplement (WIS)\",\n    \"authority\": \"Central Provident Fund Board (CPF)\",\n    \"type\": \"Government Grant\",\n    \"eligibility\": \"Singapore Citizens aged 35+ earning ≤ $2,500/month\",\n    \"benefits\": \"Cash payments and CPF contributions\",\n    \"website\": \"https://www.cpf.gov.sg/member/infohub/educational-resources/understanding-workfare-income-supplement\",\n    \"contact_email\": \"cpf_feedback@cpf.gov.sg\",\n    \"income_threshold\": 2500,\n    \"categories\": [\"employment\", \"low-income\", \"senior support\"]\n  },\n  {\n    \"program_name\": \"Silver Support Scheme\",\n    \"authority\": \"Ministry of Social and Family Development (MSF)\",\n    \"type\": \"Government Grant\",\n    \"eligibility\": \"Singapore Citizens aged 65+ with low income in early years\",\n    \"benefits\": \"Quarterly cash payouts\",\n    \"website\": \"https://www.msf.gov.sg/assistance/Pages/Silver-Support-Scheme.aspx\",\n    \"contact_email\": \"msf_feedback@msf.gov.sg\",\n    \"income_threshold\": 1500,\n    \"categories\": [\"senior support\", \"retirement\", \"low-income\"]\n  },\n  {\n    \"program_name\": \"GST Voucher Scheme\",\n    \"authority\": \"Inland Revenue Authority of Singapore (IRAS)\",\n    \"type\": \"Government Grant\",\n    \"eligibility\": \"Singapore Citizens aged 21+ with income ≤ $34,000\",\n    \"benefits\": \"Cash, MediSave, and U-Save rebates\",\n    \"website\": \"https://www.gstvoucher.gov.sg\",\n    \"contact_email\": \"gstv@iras.gov.sg\",\n    \"income_threshold\": 34000,\n    \"categories\": [\"utilities\", \"healthcare\", \"cost of living\"]\n  },\n  {\n    \"program_name\": \"ElderCare Fund\",\n    \"authority\": \"Agency for Integrated Care (AIC)\",\n    \"type\": \"Government Grant\",\n    \"eligibility\": \"Singapore Citizens and PRs needing eldercare services\",\n    \"benefits\": \"Subsidies for nursing homes, day care, home care\",\n    \"website\": \"https://www.aic.sg/financial-assistance\",\n    \"contact_email\": \"enquiries@aic.sg\",\n    \"income_threshold\": 3000,\n    \"categories\": [\"senior support\", \"healthcare\", \"caregiving\"]\n  },\n  {\n    \"program_name\": \"Community Health Assist Scheme (CHAS)\",\n    \"authority\": \"Ministry of Health (MOH)\",\n    \"type\": \"Government Grant\",\n    \"eligibility\": \"Singapore Citizens with household income ≤ $2,300 per capita\",\n    \"benefits\": \"Subsidised medical and dental care\",\n    \"website\": \"https://www.chas.gov.sg\",\n    \"contact_email\": \"chas@moh.gov.sg\",\n    \"income_threshold\": 2300,\n    \"categories\": [\"healthcare\", \"medical\", \"dental\"]\n  },\n  {\n    \"program_name\": \"SkillsFuture Credit\",\n    \"authority\": \"SkillsFuture Singapore (SSG)\",\n    \"type\": \"Government Grant\",\n    \"eligibility\": \"Singapore Citizens aged 25+\",\n    \"benefits\": \"$500 credit for skills training and courses\",\n    \"website\": \"https://www.skillsfuture.gov.sg/credit\",\n    \"contact_email\": \"skillsfuture_credit@ssg.gov.sg\",\n    \"income_threshold\": 999999,\n    \"categories\": [\"education\", \"training\", \"employment\"]\n  },\n  {\n    \"program_name\": \"CDC Vouchers Scheme\",\n    \"authority\": \"Community Development Councils\",\n    \"type\": \"Community Support\",\n    \"eligibility\": \"All Singapore households\",\n    \"benefits\": \"Vouchers for groceries and essentials\",\n    \"website\": \"https://www.cdc.gov.sg/cdcvouchers\",\n    \"contact_email\": \"cdc_vouchers@pa.gov.sg\",\n    \"income_threshold\": 999999,\n    \"categories\": [\"cost of living\", \"groceries\", \"community\"]\n  },\n  {\n    \"program_name\": \"MOE Financial Assistance Scheme (FAS)\",\n    \"authority\": \"Ministry of Education (MOE)\",\n    \"type\": \"Government Grant\",\n    \"eligibility\": \"Families with gross household income ≤ $3,000 or per capita income ≤ $750\",\n    \"benefits\": \"School fees, meals, transport, uniforms subsidies\",\n    \"website\": \"https://www.moe.gov.sg/financial-matters/financial-assistance\",\n    \"contact_email\": \"moe_fas@moe.gov.sg\",\n    \"income_threshold\": 3000,\n    \"categories\": [\"education\", \"children\", \"family support\"]\n  },\n  {\n    \"program_name\": \"Rental and Utilities Assistance\",\n    \"authority\": \"Housing & Development Board (HDB)\",\n    \"type\": \"Government Grant\",\n    \"eligibility\": \"Singapore Citizens in financial difficulty\",\n    \"benefits\": \"Rental and utility bill subsidies\",\n    \"website\": \"https://www.hdb.gov.sg/cs/infoweb/residential/living-in-an-hdb-flat/for-our-seniors/rental-and-utilities-assistance\",\n    \"contact_email\": \"hdb_feedback@hdb.gov.sg\",\n    \"income_threshold\": 2000,\n    \"categories\": [\"housing\", \"utilities\", \"low-income\"]\n  },\n  {\n    \"program_name\": \"Baby Bonus Scheme\",\n    \"authority\": \"Ministry of Social and Family Development (MSF)\",\n    \"type\": \"Government Grant\",\n    \"eligibility\": \"Singapore Citizen newborns\",\n    \"benefits\": \"Cash gift and co-savings in Child Development Account\",\n    \"website\": \"https://www.babybonus.msf.gov.sg\",\n    \"contact_email\": \"babybonus@msf.gov.sg\",\n    \"income_threshold\": 999999,\n    \"categories\": [\"family support\", \"children\", \"childcare\"]\n  },\n  {\n    \"program_name\": \"Community Care Endowment Fund (ComCare)\",\n    \"authority\": \"Ministry of Social and Family Development (MSF)\",\n    \"type\": \"Government Grant\",\n    \"eligibility\": \"Low-income individuals and families\",\n    \"benefits\": \"Emergency financial assistance\",\n    \"website\": \"https://www.msf.gov.sg/assistance\",\n    \"contact_email\": \"msf_feedback@msf.gov.sg\",\n    \"income_threshold\": 2200,\n    \"categories\": [\"emergency\", \"low-income\", \"family support\"]\n  },\n  {\n    \"program_name\": \"Merdeka Generation Package\",\n    \"authority\": \"Ministry of Health (MOH)\",\n    \"type\": \"Government Grant\",\n    \"eligibility\": \"Singapore Citizens born 1950-1959\",\n    \"benefits\": \"MediSave top-ups, outpatient subsidies, long-term care support\",\n    \"website\": \"https://www.merdekagen.sg\",\n    \"contact_email\": \"merdekagen@moh.gov.sg\",\n    \"income_threshold\": 999999,\n    \"categories\": [\"senior support\", \"healthcare\", \"medical\"]\n  },\n  {\n    \"program_name\": \"Self-Help Groups Financial Aid\",\n    \"authority\": \"MENDAKI, SINDA, CDAC, ECF\",\n    \"type\": \"Community Support\",\n    \"eligibility\": \"Community-specific (Malay, Indian, Chinese, Eurasian)\",\n    \"benefits\": \"Education bursaries, tuition assistance\",\n    \"website\": \"https://www.mendaki.org.sg\",\n    \"contact_email\": \"mendaki@mendaki.org.sg\",\n    \"income_threshold\": 3500,\n    \"categories\": [\"education\", \"community\", \"family support\"]\n  },\n  {\n    \"program_name\": \"Families for Life Council Support\",\n    \"authority\": \"Families for Life Council\",\n    \"type\": \"NGO Aid\",\n    \"eligibility\": \"Families facing challenges\",\n    \"benefits\": \"Counseling, family support programs\",\n    \"website\": \"https://www.familiesforlife.sg\",\n    \"contact_email\": \"ffl@msf.gov.sg\",\n    \"income_threshold\": 4000,\n    \"categories\": [\"family support\", \"counseling\", \"community\"]\n  },\n  {\n    \"program_name\": \"Community Foundation of Singapore Grants\",\n    \"authority\": \"Community Foundation of Singapore\",\n    \"type\": \"NGO Aid\",\n    \"eligibility\": \"Vulnerable individuals and families\",\n    \"benefits\": \"Various assistance programs\",\n    \"website\": \"https://www.cf.org.sg\",\n    \"contact_email\": \"enquiry@cf.org.sg\",\n    \"income_threshold\": 3000,\n    \"categories\": [\"emergency\", \"low-income\", \"community\"]\n  },\n  {\n    \"program_name\": \"Singapore Red Cross Assistance\",\n    \"authority\": \"Singapore Red Cross\",\n    \"type\": \"NGO Aid\",\n    \"eligibility\": \"Individuals in crisis or hardship\",\n    \"benefits\": \"Emergency aid, medical equipment loan\",\n    \"website\": \"https://www.redcross.sg\",\n    \"contact_email\": \"feedback@redcross.sg\",\n    \"income_threshold\": 2500,\n    \"categories\": [\"emergency\", \"medical\", \"healthcare\"]\n  },\n  {\n    \"program_name\": \"Salvation Army Financial Assistance\",\n    \"authority\": \"The Salvation Army Singapore\",\n    \"type\": \"NGO Aid\",\n    \"eligibility\": \"Low-income families and individuals\",\n    \"benefits\": \"Food, clothing, temporary shelter\",\n    \"website\": \"https://www.salvationarmy.org.sg\",\n    \"contact_email\": \"info@smm.salvationarmy.org\",\n    \"income_threshold\": 2000,\n    \"categories\": [\"emergency\", \"food\", \"housing\", \"low-income\"]\n  }\n]"
                }
              ]
            }
          },
          "typeVersion": 3.4
        },
        {
          "id": "153d6a11-8b28-43c1-a8c8-808ece52e481",
          "name": "OpenAI Chat Model",
          "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
          "position": [
            1088,
            320
          ],
          "parameters": {
            "options": {}
          },
          "credentials": {
            "openAiApi": {
              "id": "credential-id",
              "name": "openAiApi Credential"
            }
          },
          "typeVersion": 1
        },
        {
          "id": "71a2c690-0252-4761-9264-dcf5ef0463aa",
          "name": "AI Agent - Program Matcher",
          "type": "@n8n/n8n-nodes-langchain.agent",
          "position": [
            1104,
            128
          ],
          "parameters": {
            "text": "=You are an expert financial assistance advisor specializing in Singapore's welfare system.\n\nUser Profile:\n- Name: {{ $('Extract User Profile').item.json.user_name }}\n- Income: ${{ $('Extract User Profile').item.json.income }}\n- Employment Status: {{ $('Extract User Profile').item.json.employment_status }}\n- Household Size: {{ $('Extract User Profile').item.json.household_size }}\n- Age: {{ $('Extract User Profile').item.json.age }}\n- Needs: {{ $('Extract User Profile').item.json.needs }}\n\nAvailable Financial Assistance Programs:\n{{ $('Financial Programs Database').item.json.programs_data }}\n\nTask: Analyze the user's profile against all available programs and identify ALL suitable programs they are eligible for.\n\nFor each suitable program, consider:\n1. Income eligibility (check if user's income meets thresholds)\n2. Age requirements\n3. Citizenship/residency status\n4. Specific needs match (education, healthcare, housing, etc.)\n5. Employment status relevance\n\nProvide your analysis in the following JSON format:\n{\n  \"eligible_programs\": [\n    {\n      \"program_name\": \"Program Name\",\n      \"authority\": \"Authority Name\",\n      \"type\": \"Grant/Support/Aid type\",\n      \"match_score\": 95,\n      \"eligibility_reasons\": [\"Reason 1\", \"Reason 2\"],\n      \"benefits\": \"Description of benefits\",\n      \"contact_email\": \"email@authority.sg\",\n      \"website\": \"URL\"\n    }\n  ],\n  \"total_eligible_programs\": 5,\n  \"priority_recommendations\": [\"Top recommendation 1\", \"Top recommendation 2\"],\n  \"additional_notes\": \"Any important guidance for the user\"\n}\n\nBe thorough and include ALL programs the user qualifies for, sorted by match score (highest first).",
            "options": {
              "systemMessage": "You are a Singapore financial assistance expert. Always respond with valid JSON only. Be comprehensive and accurate in matching user profiles to assistance programs."
            },
            "promptType": "define",
            "hasOutputParser": true
          },
          "typeVersion": 1.7
        },
        {
          "id": "1e44852b-906c-4b8e-8d40-05801e86e67f",
          "name": "JSON Output Parser",
          "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
          "position": [
            1248,
            352
          ],
          "parameters": {},
          "typeVersion": 1.3
        },
        {
          "id": "3a4b5dfc-2ccf-4e95-9214-f7fe1d6f4c03",
          "name": "Parse AI Response",
          "type": "n8n-nodes-base.code",
          "position": [
            1456,
            128
          ],
          "parameters": {
            "jsCode": "const agentOutput = $input.first().json.output;\nlet eligiblePrograms;\n\nif (typeof agentOutput === 'string') {\n  eligiblePrograms = JSON.parse(agentOutput);\n} else {\n  eligiblePrograms = agentOutput;\n}\n\nreturn { json: eligiblePrograms };"
          },
          "typeVersion": 2
        },
        {
          "id": "12560d33-abaf-4fa6-8567-8dd188d0840b",
          "name": "OpenAI Letter Generator",
          "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
          "position": [
            1760,
            352
          ],
          "parameters": {
            "options": {}
          },
          "credentials": {
            "openAiApi": {
              "id": "credential-id",
              "name": "openAiApi Credential"
            }
          },
          "typeVersion": 1
        },
        {
          "id": "6c37d714-2dc1-4188-b2f9-49b86777c067",
          "name": "AI Agent - Letter Writer",
          "type": "@n8n/n8n-nodes-langchain.agent",
          "position": [
            1680,
            128
          ],
          "parameters": {
            "text": "=You are an expert letter writer specializing in formal assistance request letters for Singapore government and NGO applications.\n\nUser Information:\n- Name: {{ $('Extract User Profile').item.json.user_name }}\n- Email: {{ $('Extract User Profile').item.json.user_email }}\n- Contact: {{ $('Extract User Profile').item.json.contact_number }}\n- Address: {{ $('Extract User Profile').item.json.address }}\n- Income: ${{ $('Extract User Profile').item.json.income }}\n- Employment Status: {{ $('Extract User Profile').item.json.employment_status }}\n- Household Size: {{ $('Extract User Profile').item.json.household_size }}\n- Age: {{ $('Extract User Profile').item.json.age }}\n- Needs: {{ $('Extract User Profile').item.json.needs }}\n\nEligible Programs Analysis:\n{{ $('Parse AI Response').item.json }}\n\nTask: Generate a comprehensive, professional assistance request letter that:\n1. Addresses the TOP priority program from the eligible list\n2. Follows formal Singapore government correspondence style\n3. Clearly explains the user's situation and financial need\n4. References specific eligibility criteria that the user meets\n5. Requests consideration for the assistance program\n6. Includes all necessary contact information\n7. Is respectful, concise, and compelling\n\nFormat the letter with:\n- Proper date\n- Recipient address (use the authority from the top program)\n- Formal salutation\n- Introduction paragraph\n- Body paragraphs explaining situation and eligibility\n- Closing paragraph with request\n- Formal closing and signature block\n\nProvide the letter in plain text format, ready to be sent.",
            "options": {
              "systemMessage": "You are a professional letter writer for Singapore assistance applications. Write clear, respectful, and effective request letters following Singapore's formal correspondence standards."
            },
            "promptType": "define"
          },
          "typeVersion": 1.7
        },
        {
          "id": "6281d8ad-a30c-4476-9b92-9c31f3282dd7",
          "name": "Extract Letter",
          "type": "n8n-nodes-base.set",
          "position": [
            2032,
            128
          ],
          "parameters": {
            "options": {},
            "assignments": {
              "assignments": [
                {
                  "id": "assistance_letter",
                  "name": "assistance_letter",
                  "type": "string",
                  "value": "={{ $json.output }}"
                }
              ]
            }
          },
          "typeVersion": 3.4
        },
        {
          "id": "2649ded5-6ac0-4d2b-bdfd-466aa962abf6",
          "name": "OpenAI Email Generator",
          "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
          "position": [
            2272,
            352
          ],
          "parameters": {
            "model": "gpt-5-nano",
            "options": {}
          },
          "credentials": {
            "openAiApi": {
              "id": "credential-id",
              "name": "openAiApi Credential"
            }
          },
          "typeVersion": 1
        },
        {
          "id": "8949db80-70ff-4b30-8179-110f0edd6b39",
          "name": "AI Agent - Email Drafter",
          "type": "@n8n/n8n-nodes-langchain.agent",
          "position": [
            2256,
            128
          ],
          "parameters": {
            "text": "=You are an expert email composer for formal government and organizational correspondence in Singapore.\n\nUser Information:\n- Name: {{ $('Extract User Profile').item.json.user_name }}\n- Email: {{ $('Extract User Profile').item.json.user_email }}\n\nTop Priority Program:\n{{ $('Parse AI Response').item.json.eligible_programs[0] }}\n\nAssistance Request Letter:\n{{ $('Extract Letter').item.json.assistance_letter }}\n\nTask: Draft a professional email to be sent to the relevant authority that:\n1. Has a clear, professional subject line\n2. Includes a brief, courteous opening\n3. States the purpose (application for the specific assistance program)\n4. Mentions that the formal letter is attached/included below\n5. Provides contact information\n6. Has a professional closing\n\nProvide the email in the following JSON format:\n{\n  \"to\": \"recipient_email@authority.sg\",\n  \"subject\": \"Application for [Program Name] - [User Name]\",\n  \"body\": \"Full email body text here\",\n  \"cc\": \"\",\n  \"priority\": \"normal\"\n}\n\nMake the email concise but complete, suitable for government/NGO communication.",
            "options": {
              "systemMessage": "You are an expert in Singapore formal email correspondence. Create professional, respectful emails for assistance program applications. Always respond with valid JSON only."
            },
            "promptType": "define",
            "hasOutputParser": true
          },
          "typeVersion": 1.7
        },
        {
          "id": "4db82fd8-4b55-437c-96b2-89ed42e333a0",
          "name": "JSON Email Parser",
          "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
          "position": [
            2400,
            352
          ],
          "parameters": {},
          "typeVersion": 1.3
        },
        {
          "id": "48c7586f-b65d-4eae-a543-ed2df2e26eb3",
          "name": "Parse Email Data",
          "type": "n8n-nodes-base.code",
          "position": [
            2608,
            128
          ],
          "parameters": {
            "jsCode": "const emailOutput = $input.first().json.output;\nlet emailData;\n\nif (typeof emailOutput === 'string') {\n  emailData = JSON.parse(emailOutput);\n} else {\n  emailData = emailOutput;\n}\n\nreturn { json: emailData };"
          },
          "typeVersion": 2
        },
        {
          "id": "eff17c61-33ff-4aec-adaa-f89017642623",
          "name": "Prepare Slack Summary",
          "type": "n8n-nodes-base.set",
          "position": [
            2832,
            128
          ],
          "parameters": {
            "options": {},
            "assignments": {
              "assignments": [
                {
                  "id": "summary",
                  "name": "summary",
                  "type": "string",
                  "value": "=✅ *Financial Assistance Application Package Generated*\n\n*User:* {{ $('Extract User Profile').item.json.user_name }}\n*Email:* {{ $('Extract User Profile').item.json.user_email }}\n\n*Eligible Programs Found:* {{ $('Parse AI Response').item.json.total_eligible_programs }}\n\n*Top Recommended Program:*\n{{ $('Parse AI Response').item.json.eligible_programs[0].program_name }}\n_Authority:_ {{ $('Parse AI Response').item.json.eligible_programs[0].authority }}\n_Match Score:_ {{ $('Parse AI Response').item.json.eligible_programs[0].match_score }}%\n\n*Documents Generated:*\n✉️ Personalized assistance request letter\n📧 Draft email to {{ $('Parse Email Data').item.json.to }}\n\n*Next Steps:*\n1. Review the generated letter and email\n2. Submit to the relevant authority\n3. Follow up within 2-3 weeks\n\n_All documents are ready for submission._"
                }
              ]
            }
          },
          "typeVersion": 3.4
        },
        {
          "id": "3f44a270-74bf-4079-9cf1-c5a4d5e188c4",
          "name": "Send Slack Notification",
          "type": "n8n-nodes-base.slack",
          "position": [
            3056,
            160
          ],
          "webhookId": "1c9bec43-4022-46b8-b3dd-c1751d08fbca",
          "parameters": {
            "text": "={{ $json.summary }}",
            "select": "channel",
            "channelId": {
              "__rl": true,
              "mode": "list",
              "value": "C12345678",
              "cachedResultName": "general"
            },
            "otherOptions": {},
            "authentication": "oAuth2"
          },
          "typeVersion": 2.2
        },
        {
          "id": "91a146a3-d62e-4368-9b1b-00b9647f539c",
          "name": "Respond to Webhook",
          "type": "n8n-nodes-base.respondToWebhook",
          "position": [
            3072,
            352
          ],
          "parameters": {
            "options": {},
            "respondWith": "json",
            "responseBody": "={{ {\n  \"success\": true,\n  \"user_profile\": $('Extract User Profile').item.json,\n  \"analysis\": $('Parse AI Response').item.json,\n  \"assistance_letter\": $('Extract Letter').item.json.assistance_letter,\n  \"email_draft\": $('Parse Email Data').item.json,\n  \"message\": \"Financial assistance application package generated successfully\"\n} }}"
          },
          "typeVersion": 1.1
        },
        {
          "id": "00306dc7-b187-4a4c-917c-45814e267fd0",
          "name": "Sticky Note",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            928,
            -272
          ],
          "parameters": {
            "width": 720,
            "height": 224,
            "content": "## Setup Steps\n1. Configure AI agents by adding OpenAI credentials and setting prompts for the Program Matcher, Letter Writer, and Email Drafter.\n2. Connect the programs database (Airtable or PostgreSQL) and configure queries to retrieve matching program data.\n3. Set up the webhook by defining the trigger endpoint and payload structure for incoming profiles.\n4. Configure JSON parsers to extract relevant information from profiles, letters, and emails.\n5. Add the Slack webhook URL and define the summary format for generated communications.\n"
          },
          "typeVersion": 1
        },
        {
          "id": "790e13fe-6ac4-48fd-8798-34b17da82d04",
          "name": "Sticky Note1",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            1664,
            -272
          ],
          "parameters": {
            "color": 5,
            "width": 448,
            "content": "## Prerequisites\n- OpenAI API key\n- Financial programs database\n- Slack workspace with webhook\n- User profile structure (income, GPA, demographics)"
          },
          "typeVersion": 1
        },
        {
          "id": "2ac077cb-3ee7-43b5-b7e7-6ba42e8f7c83",
          "name": "Sticky Note2",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            2144,
            -272
          ],
          "parameters": {
            "color": 6,
            "width": 512,
            "content": "\n## Use Cases\n- Universities automating 500+ annual applicant communications\n- Scholarship foundations personalizing outreach at scale\n"
          },
          "typeVersion": 1
        },
        {
          "id": "fa9ced85-479b-4dcb-b338-eca248792dde",
          "name": "Sticky Note3",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            368,
            -272
          ],
          "parameters": {
            "width": 544,
            "height": 224,
            "content": "## How It Works\nThe webhook receives incoming profiles and extracts relevant demographic, financial, and credential data. The workflow then queries the programs database to identify suitable options, while the AI generates personalized recommendations based on eligibility and preferences. A formal recommendation letter is created, followed by a drafted outreach email tailored to coordinators. Parsers extract structured data from the letters and emails, a Slack summary is prepared for internal visibility, and the final response is sent to the appropriate recipients."
          },
          "typeVersion": 1
        },
        {
          "id": "6ac4a870-e443-4c94-a8bb-ba224e5c0460",
          "name": "Sticky Note4",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            368,
            -32
          ],
          "parameters": {
            "color": 7,
            "width": 464,
            "height": 448,
            "content": "## Input & Data Extraction\nWebhook triggers the workflow when a user profile is submitted. The system extracts user information \n\n**Why**: Establishes the foundation for personalized communications by capturing all necessary user "
          },
          "typeVersion": 1
        },
        {
          "id": "afe6a031-b8d4-4b99-b02d-0836a87ac392",
          "name": "Sticky Note5",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            848,
            -32
          ],
          "parameters": {
            "color": 7,
            "width": 560,
            "height": 496,
            "content": "## Program Analysis\nAn AI Agent analyzes programs using a chat model and structures the data as JSON.\n\n**Why**: Preprocessing ensures consistent, machine-readable data for downstream AI tasks, reducing manual parsing errors and standardizing inputs."
          },
          "typeVersion": 1
        },
        {
          "id": "57b026ba-67cd-4613-a164-9c3ee5782159",
          "name": "Sticky Note6",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            1424,
            -32
          ],
          "parameters": {
            "color": 7,
            "width": 576,
            "height": 544,
            "content": "## Letter Generation Pipeline\n AI Letter Writer generates formal correspondence while AI Email Drafter produces email variants.  \n\n**Why**: Parallel processing reduces latency, dual AI models improve quality through comparison"
          },
          "typeVersion": 1
        },
        {
          "id": "30bfad78-4113-4077-8007-fbc3a2281d5b",
          "name": "Sticky Note7",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            2016,
            -48
          ],
          "parameters": {
            "color": 7,
            "width": 544,
            "height": 560,
            "content": "## Output Processing\nJSON and email parsers extract structured data from AI responses. The workflow prepares a Slack summary consolidating key information.\n\n**Why**: Clean formatting ensures data integrity, structured outputs enable both human review and downstream system integration "
          },
          "typeVersion": 1
        },
        {
          "id": "dac25cff-b318-434b-bbed-a855cc6edcff",
          "name": "Sticky Note8",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            2688,
            -272
          ],
          "parameters": {
            "color": 4,
            "width": 512,
            "height": 208,
            "content": "## Customization\n- Add multilingual support for international applicants\n- Include PDF letter generation with signatures\n\n## Benefits\nReduces communication time from 30 to 2 minutes per applicant, ensures consistent professional quality "
          },
          "typeVersion": 1
        },
        {
          "id": "6c7270d9-92d3-471e-9a92-f043e65bb640",
          "name": "Sticky Note9",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            2576,
            -48
          ],
          "parameters": {
            "color": 7,
            "width": 720,
            "height": 560,
            "content": "## Response\nThe system sends a webhook response back to the originating application, completing the user request cycle.\n\n**Why**: Enables real-time feedback to users and closes the communication loop with the source system."
          },
          "typeVersion": 1
        }
      ],
      "active": false,
      "pinData": {},
      "settings": {
        "executionOrder": "v1"
      },
      "versionId": "aee8ced3-7ffc-42a8-b0d3-aa4c7a3e1848",
      "connections": {
        "Extract Letter": {
          "main": [
            [
              {
                "node": "AI Agent - Email Drafter",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Parse Email Data": {
          "main": [
            [
              {
                "node": "Prepare Slack Summary",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "JSON Email Parser": {
          "ai_outputParser": [
            [
              {
                "node": "AI Agent - Email Drafter",
                "type": "ai_outputParser",
                "index": 0
              }
            ]
          ]
        },
        "OpenAI Chat Model": {
          "ai_languageModel": [
            [
              {
                "node": "AI Agent - Program Matcher",
                "type": "ai_languageModel",
                "index": 0
              }
            ]
          ]
        },
        "Parse AI Response": {
          "main": [
            [
              {
                "node": "AI Agent - Letter Writer",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "JSON Output Parser": {
          "ai_outputParser": [
            [
              {
                "node": "AI Agent - Program Matcher",
                "type": "ai_outputParser",
                "index": 0
              }
            ]
          ]
        },
        "Extract User Profile": {
          "main": [
            [
              {
                "node": "Financial Programs Database",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Prepare Slack Summary": {
          "main": [
            [
              {
                "node": "Send Slack Notification",
                "type": "main",
                "index": 0
              },
              {
                "node": "Respond to Webhook",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "OpenAI Email Generator": {
          "ai_languageModel": [
            [
              {
                "node": "AI Agent - Email Drafter",
                "type": "ai_languageModel",
                "index": 0
              }
            ]
          ]
        },
        "OpenAI Letter Generator": {
          "ai_languageModel": [
            [
              {
                "node": "AI Agent - Letter Writer",
                "type": "ai_languageModel",
                "index": 0
              }
            ]
          ]
        },
        "AI Agent - Email Drafter": {
          "main": [
            [
              {
                "node": "Parse Email Data",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "AI Agent - Letter Writer": {
          "main": [
            [
              {
                "node": "Extract Letter",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "AI Agent - Program Matcher": {
          "main": [
            [
              {
                "node": "Parse AI Response",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Financial Programs Database": {
          "main": [
            [
              {
                "node": "AI Agent - Program Matcher",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Webhook - User Profile Input": {
          "main": [
            [
              {
                "node": "Extract User Profile",
                "type": "main",
                "index": 0
              }
            ]
          ]
        }
      }
    },
    "lastUpdatedBy": 1,
    "workflowInfo": {
      "nodeCount": 27,
      "nodeTypes": {
        "n8n-nodes-base.set": {
          "count": 4
        },
        "n8n-nodes-base.code": {
          "count": 2
        },
        "n8n-nodes-base.slack": {
          "count": 1
        },
        "n8n-nodes-base.webhook": {
          "count": 1
        },
        "n8n-nodes-base.stickyNote": {
          "count": 10
        },
        "@n8n/n8n-nodes-langchain.agent": {
          "count": 3
        },
        "n8n-nodes-base.respondToWebhook": {
          "count": 1
        },
        "@n8n/n8n-nodes-langchain.lmChatOpenAi": {
          "count": 3
        },
        "@n8n/n8n-nodes-langchain.outputParserStructured": {
          "count": 2
        }
      }
    },
    "status": "published",
    "user": {
      "name": "Cheng Siong Chin",
      "username": "cschin",
      "bio": "Dr. Cheng Siong CHIN is an n8n workflow creator specializing in AI-powered automation, agent orchestration, and intelligent system integrations. He designs and builds end-to-end workflows that combine LLMs, APIs, and data pipelines to streamline complex processes and deliver production-ready automation solutions. Contact me to discuss custom AI workflows and agent architectures.\n",
      "verified": true,
      "links": [
        "https://gravatar.com/mysticluminary9fa255f7f5"
      ],
      "avatar": "https://gravatar.com/avatar/54544f98e839bb9dd9a764ad1e6823eeddb6db5138d201e42f291a7b0a73303f?r=pg&d=retro&size=200"
    },
    "nodes": [
      {
        "id": 38,
        "icon": "fa:pen",
        "name": "n8n-nodes-base.set",
        "codex": {
          "data": {
            "alias": [
              "Set",
              "JS",
              "JSON",
              "Filter",
              "Transform",
              "Map"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/",
                  "icon": "🏭",
                  "label": "Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"
                },
                {
                  "url": "https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/",
                  "icon": "☀️",
                  "label": "2021: The Year to Automate the New You with n8n"
                },
                {
                  "url": "https://n8n.io/blog/automatically-pulling-and-visualizing-data-with-n8n/",
                  "icon": "📈",
                  "label": "Automatically pulling and visualizing data with n8n"
                },
                {
                  "url": "https://n8n.io/blog/database-monitoring-and-alerting-with-n8n/",
                  "icon": "📡",
                  "label": "Database Monitoring and Alerting with n8n"
                },
                {
                  "url": "https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/",
                  "icon": "🧾",
                  "label": "Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/no-code-ecommerce-workflow-automations/",
                  "icon": "store",
                  "label": "6 e-commerce workflows to power up your Shopify s"
                },
                {
                  "url": "https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/",
                  "icon": "🔗",
                  "label": "How to build a low-code, self-hosted URL shortener in 3 steps"
                },
                {
                  "url": "https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/",
                  "icon": "⚙️",
                  "label": "Automate your data processing pipeline in 9 steps"
                },
                {
                  "url": "https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/",
                  "icon": "👥",
                  "label": "How to get started with CRM automation (with 3 no-code workflow ideas"
                },
                {
                  "url": "https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/",
                  "icon": "⚡️",
                  "label": "5 tasks you can automate with the new Notion API "
                },
                {
                  "url": "https://n8n.io/blog/automate-google-apps-for-productivity/",
                  "icon": "💡",
                  "label": "15 Google apps you can combine and automate to increase productivity"
                },
                {
                  "url": "https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/",
                  "icon": " 🕸️",
                  "label": "How uProc scraped a multi-page website with a low-code workflow"
                },
                {
                  "url": "https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/",
                  "icon": "📱",
                  "label": "Building an expense tracking app in 10 minutes"
                },
                {
                  "url": "https://n8n.io/blog/the-ultimate-guide-to-automate-your-video-collaboration-with-whereby-mattermost-and-n8n/",
                  "icon": "📹",
                  "label": "The ultimate guide to automate your video collaboration with Whereby, Mattermost, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/",
                  "icon": "🤖",
                  "label": "5 workflow automations for Mattermost that we love at n8n"
                },
                {
                  "url": "https://n8n.io/blog/learn-to-build-powerful-api-endpoints-using-webhooks/",
                  "icon": "🧰",
                  "label": "Learn to Build Powerful API Endpoints Using Webhooks"
                },
                {
                  "url": "https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/",
                  "icon": "📈",
                  "label": "How a Membership Development Manager automates his work and investments"
                },
                {
                  "url": "https://n8n.io/blog/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/",
                  "icon": "📈",
                  "label": "A low-code bitcoin ticker built with QuestDB and n8n.io"
                },
                {
                  "url": "https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/",
                  "icon": "🎡",
                  "label": "How to set up a no-code CI/CD pipeline with GitHub and TravisCI"
                },
                {
                  "url": "https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/",
                  "icon": "🎖",
                  "label": "Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"
                },
                {
                  "url": "https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/",
                  "icon": "🛵",
                  "label": "How Goomer automated their operations with over 200 n8n workflows"
                },
                {
                  "url": "https://n8n.io/blog/aws-workflow-automation/",
                  "label": "7 no-code workflow automations for Amazon Web Services"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.set/"
                }
              ]
            },
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Data Transformation"
              ]
            }
          }
        },
        "group": "[\"input\"]",
        "defaults": {
          "name": "Edit Fields"
        },
        "iconData": {
          "icon": "pen",
          "type": "icon"
        },
        "displayName": "Edit Fields (Set)",
        "typeVersion": 3,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 40,
        "icon": "file:slack.svg",
        "name": "n8n-nodes-base.slack",
        "codex": {
          "data": {
            "alias": [
              "human",
              "form",
              "wait",
              "hitl",
              "approval"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/no-code-ecommerce-workflow-automations/",
                  "icon": "store",
                  "label": "6 e-commerce workflows to power up your Shopify s"
                },
                {
                  "url": "https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/",
                  "icon": "⚙️",
                  "label": "Automate your data processing pipeline in 9 steps"
                },
                {
                  "url": "https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/",
                  "icon": "👥",
                  "label": "How to get started with CRM automation (with 3 no-code workflow ideas"
                },
                {
                  "url": "https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/",
                  "icon": "⚡️",
                  "label": "5 tasks you can automate with the new Notion API "
                },
                {
                  "url": "https://n8n.io/blog/build-your-own-virtual-assistant-with-n8n-a-step-by-step-guide/",
                  "icon": "👦",
                  "label": "Build your own virtual assistant with n8n: A step by step guide"
                },
                {
                  "url": "https://n8n.io/blog/how-to-automatically-give-kudos-to-contributors-with-github-slack-and-n8n/",
                  "icon": "👏",
                  "label": "How to automatically give kudos to contributors with GitHub, Slack, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/automations-for-activists/",
                  "icon": "✨",
                  "label": "How Common Knowledge use workflow automation for activism"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.slack/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/slack/"
                }
              ]
            },
            "categories": [
              "Communication",
              "HITL"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "HITL": [
                "Human in the Loop"
              ]
            }
          }
        },
        "group": "[\"output\"]",
        "defaults": {
          "name": "Slack"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSIwIDAgMTUwLjg1MiAxNTAuODUyIj48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIuOTI2IiB5PSIuOTI2Ii8+PHN5bWJvbCBpZD0iYSIgb3ZlcmZsb3c9InZpc2libGUiPjxnIHN0cm9rZS13aWR0aD0iMS44NTIiPjxwYXRoIGZpbGw9IiNlMDFlNWEiIHN0cm9rZT0iI2UwMWU1YSIgZD0iTTQwLjc0MSA5My41NWMwLTguNzM1IDYuNjA3LTE1Ljc3MiAxNC44MTUtMTUuNzcyczE0LjgxNSA3LjAzNyAxNC44MTUgMTUuNzcydjM4LjgyNGMwIDguNzM3LTYuNjA3IDE1Ljc3NC0xNC44MTUgMTUuNzc0cy0xNC44MTUtNy4wMzctMTQuODE1LTE1Ljc3MnoiLz48cGF0aCBmaWxsPSIjZWNiMjJkIiBzdHJva2U9IiNlY2IyMmQiIGQ9Ik05My41NSAxMDcuNDA4Yy04LjczNSAwLTE1Ljc3Mi02LjYwNy0xNS43NzItMTQuODE1czcuMDM3LTE0LjgxNSAxNS43NzItMTQuODE1aDM4LjgyNmM4LjczNSAwIDE1Ljc3MiA2LjYwNyAxNS43NzIgMTQuODE1cy03LjAzNyAxNC44MTUtMTUuNzcyIDE0LjgxNXoiLz48cGF0aCBmaWxsPSIjMmZiNjdjIiBzdHJva2U9IiMyZmI2N2MiIGQ9Ik03Ny43NzggMTUuNzcyQzc3Ljc3OCA3LjAzNyA4NC4zODUgMCA5Mi41OTMgMHMxNC44MTUgNy4wMzcgMTQuODE1IDE1Ljc3MnYzOC44MjZjMCA4LjczNS02LjYwNyAxNS43NzItMTQuODE1IDE1Ljc3MnMtMTQuODE1LTcuMDM3LTE0LjgxNS0xNS43NzJ6Ii8+PHBhdGggZmlsbD0iIzM2YzVmMSIgc3Ryb2tlPSIjMzZjNWYxIiBkPSJNMTUuNzcyIDcwLjM3MUM3LjAzNyA3MC4zNzEgMCA2My43NjMgMCA1NS41NTZzNy4wMzctMTQuODE1IDE1Ljc3Mi0xNC44MTVoMzguODI2YzguNzM1IDAgMTUuNzcyIDYuNjA3IDE1Ljc3MiAxNC44MTVzLTcuMDM3IDE0LjgxNS0xNS43NzIgMTQuODE1eiIvPjxnIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiPjxwYXRoIGZpbGw9IiNlY2IyMmQiIHN0cm9rZT0iI2VjYjIyZCIgZD0iTTc3Ljc3OCAxMzMuMzMzYzAgOC4yMDggNi42MDcgMTQuODE1IDE0LjgxNSAxNC44MTVzMTQuODE1LTYuNjA3IDE0LjgxNS0xNC44MTUtNi42MDctMTQuODE1LTE0LjgxNS0xNC44MTVINzcuNzc4eiIvPjxwYXRoIGZpbGw9IiMyZmI2N2MiIHN0cm9rZT0iIzJmYjY3YyIgZD0iTTEzMy4zMzQgNzAuMzcxaC0xNC44MTVWNTUuNTU2YzAtOC4yMDcgNi42MDctMTQuODE1IDE0LjgxNS0xNC44MTVzMTQuODE1IDYuNjA3IDE0LjgxNSAxNC44MTUtNi42MDcgMTQuODE1LTE0LjgxNSAxNC44MTV6Ii8+PHBhdGggZmlsbD0iI2UwMWU1YSIgc3Ryb2tlPSIjZTAxZTVhIiBkPSJNMTQuODE1IDc3Ljc3OEgyOS42M3YxNC44MTVjMCA4LjIwNy02LjYwNyAxNC44MTUtMTQuODE1IDE0LjgxNVMwIDEwMC44IDAgOTIuNTkzczYuNjA3LTE0LjgxNSAxNC44MTUtMTQuODE1eiIvPjxwYXRoIGZpbGw9IiMzNmM1ZjEiIHN0cm9rZT0iIzM2YzVmMSIgZD0iTTcwLjM3MSAxNC44MTVWMjkuNjNINTUuNTU2Yy04LjIwNyAwLTE0LjgxNS02LjYwNy0xNC44MTUtMTQuODE1UzQ3LjM0OCAwIDU1LjU1NiAwczE0LjgxNSA2LjYwNyAxNC44MTUgMTQuODE1eiIvPjwvZz48L2c+PC9zeW1ib2w+PC9zdmc+"
        },
        "displayName": "Slack",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 6,
            "name": "Communication"
          },
          {
            "id": 28,
            "name": "HITL"
          }
        ]
      },
      {
        "id": 47,
        "icon": "file:webhook.svg",
        "name": "n8n-nodes-base.webhook",
        "codex": {
          "data": {
            "alias": [
              "HTTP",
              "API",
              "Build",
              "WH"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/learn-how-to-automatically-cross-post-your-content-with-n8n/",
                  "icon": "✍️",
                  "label": "Learn how to automatically cross-post your content with n8n"
                },
                {
                  "url": "https://n8n.io/blog/running-n8n-on-ships-an-interview-with-maranics/",
                  "icon": "🛳",
                  "label": "Running n8n on ships: An interview with Maranics"
                },
                {
                  "url": "https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/",
                  "icon": "🔗",
                  "label": "How to build a low-code, self-hosted URL shortener in 3 steps"
                },
                {
                  "url": "https://n8n.io/blog/what-are-apis-how-to-use-them-with-no-code/",
                  "icon": " 🪢",
                  "label": "What are APIs and how to use them with no code"
                },
                {
                  "url": "https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/",
                  "icon": "⚡️",
                  "label": "5 tasks you can automate with the new Notion API "
                },
                {
                  "url": "https://n8n.io/blog/how-a-digital-strategist-uses-n8n-for-online-marketing/",
                  "icon": "💻",
                  "label": "How a digital strategist uses n8n for online marketing"
                },
                {
                  "url": "https://n8n.io/blog/the-ultimate-guide-to-automate-your-video-collaboration-with-whereby-mattermost-and-n8n/",
                  "icon": "📹",
                  "label": "The ultimate guide to automate your video collaboration with Whereby, Mattermost, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/how-to-automatically-give-kudos-to-contributors-with-github-slack-and-n8n/",
                  "icon": "👏",
                  "label": "How to automatically give kudos to contributors with GitHub, Slack, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/",
                  "icon": "🤖",
                  "label": "5 workflow automations for Mattermost that we love at n8n"
                },
                {
                  "url": "https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/",
                  "icon": "🧠",
                  "label": "Why this Product Manager loves workflow automation with n8n"
                },
                {
                  "url": "https://n8n.io/blog/creating-custom-incident-response-workflows-with-n8n/",
                  "label": "How to automate every step of an incident response workflow"
                },
                {
                  "url": "https://n8n.io/blog/learn-to-build-powerful-api-endpoints-using-webhooks/",
                  "icon": "🧰",
                  "label": "Learn to Build Powerful API Endpoints Using Webhooks"
                },
                {
                  "url": "https://n8n.io/blog/learn-how-to-use-webhooks-with-mattermost-slash-commands/",
                  "icon": "🦄",
                  "label": "Learn how to use webhooks with Mattermost slash commands"
                },
                {
                  "url": "https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/",
                  "icon": "🛵",
                  "label": "How Goomer automated their operations with over 200 n8n workflows"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.webhook/"
                }
              ]
            },
            "categories": [
              "Development",
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Helpers"
              ]
            }
          }
        },
        "group": "[\"trigger\"]",
        "defaults": {
          "name": "Webhook"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCI+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTM1IDM3Yy0yLjIgMC00LTEuOC00LTRzMS44LTQgNC00IDQgMS44IDQgNC0xLjggNC00IDQiLz48cGF0aCBmaWxsPSIjMzc0NzRmIiBkPSJNMzUgNDNjLTMgMC01LjktMS40LTcuOC0zLjdsMy4xLTIuNWMxLjEgMS40IDIuOSAyLjMgNC43IDIuMyAzLjMgMCA2LTIuNyA2LTZzLTIuNy02LTYtNmMtMSAwLTIgLjMtMi45LjdsLTEuNyAxTDIzLjMgMTZsMy41LTEuOSA1LjMgOS40YzEtLjMgMi0uNSAzLS41IDUuNSAwIDEwIDQuNSAxMCAxMFM0MC41IDQzIDM1IDQzIi8+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTE0IDQzQzguNSA0MyA0IDM4LjUgNCAzM2MwLTQuNiAzLjEtOC41IDcuNS05LjdsMSAzLjlDOS45IDI3LjkgOCAzMC4zIDggMzNjMCAzLjMgMi43IDYgNiA2czYtMi43IDYtNnYtMmgxNXY0SDIzLjhjLS45IDQuNi01IDgtOS44IDgiLz48cGF0aCBmaWxsPSIjZTkxZTYzIiBkPSJNMTQgMzdjLTIuMiAwLTQtMS44LTQtNHMxLjgtNCA0LTQgNCAxLjggNCA0LTEuOCA0LTQgNCIvPjxwYXRoIGZpbGw9IiMzNzQ3NGYiIGQ9Ik0yNSAxOWMtMi4yIDAtNC0xLjgtNC00czEuOC00IDQtNCA0IDEuOCA0IDQtMS44IDQtNCA0Ii8+PHBhdGggZmlsbD0iI2U5MWU2MyIgZD0ibTE1LjcgMzQtMy40LTIgNS45LTkuN2MtMi0xLjktMy4yLTQuNS0zLjItNy4zIDAtNS41IDQuNS0xMCAxMC0xMHMxMCA0LjUgMTAgMTBjMCAuOS0uMSAxLjctLjMgMi41bC0zLjktMWMuMS0uNS4yLTEgLjItMS41IDAtMy4zLTIuNy02LTYtNnMtNiAyLjctNiA2YzAgMi4xIDEuMSA0IDIuOSA1LjFsMS43IDF6Ii8+PC9zdmc+"
        },
        "displayName": "Webhook",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 5,
            "name": "Development"
          },
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 535,
        "icon": "file:webhook.svg",
        "name": "n8n-nodes-base.respondToWebhook",
        "codex": {
          "data": {
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.respondtowebhook/"
                }
              ]
            },
            "categories": [
              "Core Nodes",
              "Utility"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Helpers"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Respond to Webhook"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCI+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTM1IDM3Yy0yLjIgMC00LTEuOC00LTRzMS44LTQgNC00IDQgMS44IDQgNC0xLjggNC00IDQiLz48cGF0aCBmaWxsPSIjMzc0NzRmIiBkPSJNMzUgNDNjLTMgMC01LjktMS40LTcuOC0zLjdsMy4xLTIuNWMxLjEgMS40IDIuOSAyLjMgNC43IDIuMyAzLjMgMCA2LTIuNyA2LTZzLTIuNy02LTYtNmMtMSAwLTIgLjMtMi45LjdsLTEuNyAxTDIzLjMgMTZsMy41LTEuOSA1LjMgOS40YzEtLjMgMi0uNSAzLS41IDUuNSAwIDEwIDQuNSAxMCAxMFM0MC41IDQzIDM1IDQzIi8+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTE0IDQzQzguNSA0MyA0IDM4LjUgNCAzM2MwLTQuNiAzLjEtOC41IDcuNS05LjdsMSAzLjlDOS45IDI3LjkgOCAzMC4zIDggMzNjMCAzLjMgMi43IDYgNiA2czYtMi43IDYtNnYtMmgxNXY0SDIzLjhjLS45IDQuNi01IDgtOS44IDgiLz48cGF0aCBmaWxsPSIjZTkxZTYzIiBkPSJNMTQgMzdjLTIuMiAwLTQtMS44LTQtNHMxLjgtNCA0LTQgNCAxLjggNCA0LTEuOCA0LTQgNCIvPjxwYXRoIGZpbGw9IiMzNzQ3NGYiIGQ9Ik0yNSAxOWMtMi4yIDAtNC0xLjgtNC00czEuOC00IDQtNCA0IDEuOCA0IDQtMS44IDQtNCA0Ii8+PHBhdGggZmlsbD0iI2U5MWU2MyIgZD0ibTE1LjcgMzQtMy40LTIgNS45LTkuN2MtMi0xLjktMy4yLTQuNS0zLjItNy4zIDAtNS41IDQuNS0xMCAxMC0xMHMxMCA0LjUgMTAgMTBjMCAuOS0uMSAxLjctLjMgMi41bC0zLjktMWMuMS0uNS4yLTEgLjItMS41IDAtMy4zLTIuNy02LTYtNnMtNiAyLjctNiA2YzAgMi4xIDEuMSA0IDIuOSA1LjFsMS43IDF6Ii8+PC9zdmc+"
        },
        "displayName": "Respond to Webhook",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 7,
            "name": "Utility"
          },
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 565,
        "icon": "fa:sticky-note",
        "name": "n8n-nodes-base.stickyNote",
        "codex": {
          "data": {
            "alias": [
              "Comments",
              "Notes",
              "Sticky"
            ],
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Helpers"
              ]
            }
          }
        },
        "group": "[\"input\"]",
        "defaults": {
          "name": "Sticky Note",
          "color": "#FFD233"
        },
        "iconData": {
          "icon": "sticky-note",
          "type": "icon"
        },
        "displayName": "Sticky Note",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 834,
        "icon": "file:code.svg",
        "name": "n8n-nodes-base.code",
        "codex": {
          "data": {
            "alias": [
              "cpde",
              "Javascript",
              "JS",
              "Python",
              "Script",
              "Custom Code",
              "Function"
            ],
            "details": "The Code node allows you to execute JavaScript in your workflow.",
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.code/"
                }
              ]
            },
            "categories": [
              "Development",
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Helpers",
                "Data Transformation"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Code"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTcxXzQ0MSkiPgo8cGF0aCBkPSJNMTcwLjI4MyA0OEgxOTYuNUMyMDMuMTI3IDQ4IDIwOC41IDQyLjYyNzQgMjA4LjUgMzZWMTJDMjA4LjUgNS4zNzI1OCAyMDMuMTI3IDAgMTk2LjUgMEgxNzAuMjgzQzEyNi4xIDAgOTAuMjgzIDM1LjgxNzIgOTAuMjgzIDgwVjE3NkM5MC4yODMgMjA2LjkyOCA2NS4yMTA5IDIzMiAzNC4yODMgMjMySDIzQzE2LjM3MjYgMjMyIDExIDIzNy4zNzIgMTEgMjQ0VjI2OEMxMSAyNzQuNjI3IDE2LjM3MjQgMjgwIDIyLjk5OTYgMjgwTDM0LjI4MyAyODBDNjUuMjEwOSAyODAgOTAuMjgzIDMwNS4wNzIgOTAuMjgzIDMzNlY0NDBDOTAuMjgzIDQ3OS43NjQgMTIyLjUxOCA1MTIgMTYyLjI4MyA1MTJIMTk2LjVDMjAzLjEyNyA1MTIgMjA4LjUgNTA2LjYyNyAyMDguNSA1MDBWNDc2QzIwOC41IDQ2OS4zNzMgMjAzLjEyNyA0NjQgMTk2LjUgNDY0SDE2Mi4yODNDMTQ5LjAyOCA0NjQgMTM4LjI4MyA0NTMuMjU1IDEzOC4yODMgNDQwVjMzNkMxMzguMjgzIDMwOS4wMjIgMTI4LjAxMSAyODQuNDQzIDExMS4xNjQgMjY1Ljk2MUMxMDYuMTA5IDI2MC40MTYgMTA2LjEwOSAyNTEuNTg0IDExMS4xNjQgMjQ2LjAzOUMxMjguMDExIDIyNy41NTcgMTM4LjI4MyAyMDIuOTc4IDEzOC4yODMgMTc2VjgwQzEzOC4yODMgNjIuMzI2OSAxNTIuNjEgNDggMTcwLjI4MyA0OFoiIGZpbGw9IiNGRjk5MjIiLz4KPHBhdGggZD0iTTMwNSAzNkMzMDUgNDIuNjI3NCAzMTAuMzczIDQ4IDMxNyA0OEgzNDIuOTc5QzM2MC42NTIgNDggMzc0Ljk3OCA2Mi4zMjY5IDM3NC45NzggODBWMTc2QzM3NC45NzggMjAyLjk3OCAzODUuMjUxIDIyNy41NTcgNDAyLjA5OCAyNDYuMDM5QzQwNy4xNTMgMjUxLjU4NCA0MDcuMTUzIDI2MC40MTYgNDAyLjA5OCAyNjUuOTYxQzM4NS4yNTEgMjg0LjQ0MyAzNzQuOTc4IDMwOS4wMjIgMzc0Ljk3OCAzMzZWNDMyQzM3NC45NzggNDQ5LjY3MyAzNjAuNjUyIDQ2NCAzNDIuOTc5IDQ2NEgzMTdDMzEwLjM3MyA0NjQgMzA1IDQ2OS4zNzMgMzA1IDQ3NlY1MDBDMzA1IDUwNi42MjcgMzEwLjM3MyA1MTIgMzE3IDUxMkgzNDIuOTc5QzM4Ny4xNjEgNTEyIDQyMi45NzggNDc2LjE4MyA0MjIuOTc4IDQzMlYzMzZDNDIyLjk3OCAzMDUuMDcyIDQ0OC4wNTEgMjgwIDQ3OC45NzkgMjgwSDQ5MEM0OTYuNjI3IDI4MCA1MDIgMjc0LjYyOCA1MDIgMjY4VjI0NEM1MDIgMjM3LjM3MyA0OTYuNjI4IDIzMiA0OTAgMjMyTDQ3OC45NzkgMjMyQzQ0OC4wNTEgMjMyIDQyMi45NzggMjA2LjkyOCA0MjIuOTc4IDE3NlY4MEM0MjIuOTc4IDM1LjgxNzIgMzg3LjE2MSAwIDM0Mi45NzkgMEgzMTdDMzEwLjM3MyAwIDMwNSA1LjM3MjU4IDMwNSAxMlYzNloiIGZpbGw9IiNGRjk5MjIiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTcxXzQ0MSI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="
        },
        "displayName": "Code",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 5,
            "name": "Development"
          },
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 1119,
        "icon": "fa:robot",
        "name": "@n8n/n8n-nodes-langchain.agent",
        "codex": {
          "data": {
            "alias": [
              "LangChain",
              "Chat",
              "Conversational",
              "Plan and Execute",
              "ReAct",
              "Tools"
            ],
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Agents",
                "Root Nodes"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "AI Agent",
          "color": "#404040"
        },
        "iconData": {
          "icon": "robot",
          "type": "icon"
        },
        "displayName": "AI Agent",
        "typeVersion": 3,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      },
      {
        "id": 1153,
        "icon": "file:openAiLight.svg",
        "name": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
        "codex": {
          "data": {
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatopenai/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Language Models",
                "Root Nodes"
              ],
              "Language Models": [
                "Chat Models (Recommended)"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "OpenAI Chat Model"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTM2Ljg2NzEgMTYuMzcxOEMzNy43NzQ2IDEzLjY0OCAzNy40NjIxIDEwLjY2NDIgMzYuMDEwOCA4LjE4NjYxQzMzLjgyODIgNC4zODY1MyAyOS40NDA3IDIuNDMxNDkgMjUuMTU1NiAzLjM1MTUxQzIzLjI0OTMgMS4yMDM5NiAyMC41MTA1IC0wLjAxNzMxNDggMTcuNjM5MiAwLjAwMDE4NTUzM0MxMy4yNTkxIC0wLjAwOTgxNDY4IDkuMzcyNzMgMi44MTAyNSA4LjAyNTIgNi45Nzc4M0M1LjIxMTM5IDcuNTU0MSAyLjc4MjU4IDkuMzE1MzggMS4zNjEzIDExLjgxMTdDLTAuODM3NDkzIDE1LjYwMTggLTAuMzM2MjMyIDIwLjM3OTQgMi42MDEzMyAyMy42Mjk0QzEuNjkzODEgMjYuMzUzMiAyLjAwNjMyIDI5LjMzNzEgMy40NTc2IDMxLjgxNDZDNS42NDAxNSAzNS42MTQ3IDEwLjAyNzcgMzcuNTY5NyAxNC4zMTI4IDM2LjY0OTdDMTYuMjE3OSAzOC43OTczIDE4Ljk1NzkgNDAuMDE4NSAyMS44MjkyIDM5Ljk5OThDMjYuMjExOCA0MC4wMTEgMzAuMDk5NCAzNy4xODg1IDMxLjQ0NjkgMzMuMDE3MUMzNC4yNjA4IDMyLjQ0MDkgMzYuNjg5NiAzMC42Nzk2IDM4LjExMDggMjguMTgzM0M0MC4zMDcxIDI0LjM5MzIgMzkuODA0NiAxOS42MTk0IDM2Ljg2ODMgMTYuMzY5M0wzNi44NjcxIDE2LjM3MThaTTIxLjgzMTcgMzcuMzg2QzIwLjA3OCAzNy4zODg1IDE4LjM3OTIgMzYuNzc0NyAxNy4wMzI5IDM1LjY1MDlDMTcuMDk0MSAzNS42MTg0IDE3LjIwMDQgMzUuNTU5NyAxNy4yNjkxIDM1LjUxNzJMMjUuMjM0MyAzMC45MTcxQzI1LjY0MTggMzAuNjg1OCAyNS44OTE4IDMwLjI1MjEgMjUuODg5MyAyOS43ODMzVjE4LjU1NDNMMjkuMjU1NyAyMC40OTgxQzI5LjI5MTkgMjAuNTE1NiAyOS4zMTU3IDIwLjU1MDYgMjkuMzIwNyAyMC41OTA2VjI5Ljg4OTZDMjkuMzE1NyAzNC4wMjQ3IDI1Ljk2NjggMzcuMzc3MiAyMS44MzE3IDM3LjM4NlpNNS43MjY0IDMwLjUwNzFDNC44NDc2MyAyOC45ODk2IDQuNTMxMzcgMjcuMjEwOCA0LjgzMjYzIDI1LjQ4NDVDNC44OTEzOCAyNS41MTk1IDQuOTk1MTMgMjUuNTgzMiA1LjA2ODg4IDI1LjYyNTdMMTMuMDM0MSAzMC4yMjU4QzEzLjQzNzggMzAuNDYyMSAxMy45Mzc4IDMwLjQ2MjEgMTQuMzQyOCAzMC4yMjU4TDI0LjA2NjggMjQuNjEwN1YyOC40OTgzQzI0LjA2OTMgMjguNTM4MyAyNC4wNTA1IDI4LjU3NyAyNC4wMTkzIDI4LjYwMkwxNS45Njc5IDMzLjI1MDlDMTIuMzgxNSAzNS4zMTU5IDcuODAxNDQgMzQuMDg4NCA1LjcyNzY1IDMwLjUwNzFINS43MjY0Wk0zLjYzMDEgMTMuMTIwNUM0LjUwNTEyIDExLjYwMDQgNS44ODY0IDEwLjQzNzkgNy41MzE0NCA5LjgzNDE1QzcuNTMxNDQgOS45MDI5IDcuNTI3NjkgMTAuMDI0MiA3LjUyNzY5IDEwLjEwOTJWMTkuMzEwNkM3LjUyNTE5IDE5Ljc3ODEgNy43NzUxOSAyMC4yMTE5IDguMTgxNDUgMjAuNDQzMUwxNy45MDU0IDI2LjA1N0wxNC41MzkxIDI4LjAwMDhDMTQuNTA1MyAyOC4wMjMzIDE0LjQ2MjggMjguMDI3IDE0LjQyNTMgMjguMDEwOEw2LjM3MjY2IDIzLjM1ODJDMi43OTM4MyAyMS4yODU2IDEuNTY2MzEgMTYuNzA2OCAzLjYyODg1IDEzLjEyMTdMMy42MzAxIDEzLjEyMDVaTTMxLjI4ODIgMTkuNTU2OUwyMS41NjQyIDEzLjk0MTdMMjQuOTMwNiAxMS45OTkyQzI0Ljk2NDMgMTEuOTc2NyAyNS4wMDY4IDExLjk3MjkgMjUuMDQ0MyAxMS45ODkyTDMzLjA5NyAxNi42MzhDMzYuNjgyMSAxOC43MDkzIDM3LjkxMDggMjMuMjk1NyAzNS44Mzk1IDI2Ljg4MDhDMzQuOTYzMyAyOC4zOTgzIDMzLjU4MzIgMjkuNTYwOCAzMS45Mzk1IDMwLjE2NThWMjAuNjg5NEMzMS45NDMyIDIwLjIyMTkgMzEuNjk0NSAxOS43ODk0IDMxLjI4OTQgMTkuNTU2OUgzMS4yODgyWk0zNC42MzgzIDE0LjUxNDJDMzQuNTc5NSAxNC40NzggMzQuNDc1OCAxNC40MTU1IDM0LjQwMiAxNC4zNzNMMjYuNDM2OCA5Ljc3Mjg5QzI2LjAzMzEgOS41MzY2NCAyNS41MzMxIDkuNTM2NjQgMjUuMTI4MSA5Ljc3Mjg5TDE1LjQwNDEgMTUuMzg4VjExLjUwMDRDMTUuNDAxNiAxMS40NjA0IDE1LjQyMDQgMTEuNDIxNyAxNS40NTE2IDExLjM5NjdMMjMuNTAzIDYuNzUxNThDMjcuMDg5NCA0LjY4Mjc5IDMxLjY3NDUgNS45MTQwNiAzMy43NDIgOS41MDE2NEMzNC42MTU4IDExLjAxNjcgMzQuOTMyIDEyLjc5MDUgMzQuNjM1OCAxNC41MTQySDM0LjYzODNaTTEzLjU3NDEgMjEuNDQzMUwxMC4yMDY1IDE5LjQ5OTRDMTAuMTcwMiAxOS40ODE5IDEwLjE0NjUgMTkuNDQ2OCAxMC4xNDE1IDE5LjQwNjhWMTAuMTA3OUMxMC4xNDQgNS45Njc4MSAxMy41MDI4IDIuNjEyNzQgMTcuNjQyOSAyLjYxNTI0QzE5LjM5NDIgMi42MTUyNCAyMS4wODkyIDMuMjMwMjUgMjIuNDM1NSA0LjM1MDI4QzIyLjM3NDMgNC4zODI3OCAyMi4yNjkzIDQuNDQxNTMgMjIuMTk5MiA0LjQ4NDAzTDE0LjIzNDEgOS4wODQxM0MxMy44MjY2IDkuMzE1MzggMTMuNTc2NiA5Ljc0Nzg5IDEzLjU3OTEgMTAuMjE2N0wxMy41NzQxIDIxLjQ0MDZWMjEuNDQzMVpNMTUuNDAyOSAxNy41MDA2TDE5LjczNDIgMTQuOTk5M0wyNC4wNjU1IDE3LjQ5OTNWMjIuNTAwN0wxOS43MzQyIDI1LjAwMDdMMTUuNDAyOSAyMi41MDA3VjE3LjUwMDZaIiBmaWxsPSIjN0Q3RDg3Ii8+Cjwvc3ZnPgo="
        },
        "displayName": "OpenAI Chat Model",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      },
      {
        "id": 1179,
        "icon": "fa:code",
        "name": "@n8n/n8n-nodes-langchain.outputParserStructured",
        "codex": {
          "data": {
            "alias": [
              "json",
              "zod"
            ],
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.outputparserstructured/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Output Parsers"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Structured Output Parser"
        },
        "iconData": {
          "icon": "code",
          "type": "icon"
        },
        "displayName": "Structured Output Parser",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      }
    ],
    "categories": [
      {
        "id": 35,
        "name": "Document Extraction"
      },
      {
        "id": 51,
        "name": "Multimodal AI"
      }
    ],
    "image": []
  }
}