AutomationFlowsAI & RAG › Build an Ai-powered Employee Recognition System with Gpt-4, Jotform and…

Build an Ai-powered Employee Recognition System with Gpt-4, Jotform and…

Original n8n title: Build an Ai-powered Employee Recognition System with Gpt-4, Jotform and Google Sheets

ByJitesh Dugar @jiteshdugar on n8n.io

Transform manual peer recognition into a transparent, engaging, and automated reward system - achieving 300% increase in recognition submissions, 85% employee satisfaction improvement, and building a culture where great work is celebrated instantly.

Cron / scheduled trigger★★★★☆ complexityAI-powered24 nodesAgentGoogle SheetsGmailOpenAI ChatJot Form Trigger
AI & RAG Trigger: Cron / scheduled Nodes: 24 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow corresponds to n8n.io template #9817 — we link there as the canonical source.

This workflow follows the Agent → Gmail recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "nodes": [
    {
      "id": "86fd61aa-d2ce-446f-930e-67245b71a05b",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1248,
        64
      ],
      "parameters": {
        "color": 4,
        "width": 360,
        "height": 536,
        "content": "## \ud83c\udfc6 Employee Recognition & Rewards\n\n**Purpose:** Transform manual peer recognition into automated, transparent, and engaging reward system\n\n**Key Features:**\n- Peer-to-peer recognition submissions\n- AI-powered category classification\n- Automated acknowledgment emails\n- Recognition log tracking\n- Monthly award automation\n- Analytics & reporting\n\n**Impact:** 300% increase in recognition submissions, improved morale"
      },
      "typeVersion": 1
    },
    {
      "id": "e125cbbb-45c7-4f17-994d-bd361c65097c",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -864,
        -32
      ],
      "parameters": {
        "color": 5,
        "width": 340,
        "height": 508,
        "content": "## \ud83d\udcdd Jotform Recognition Fields:\n- Nominator Name (q3_nominatorName)\n- Nominator Email (q4_nominatorEmail)\n- Nominee Name (q5_nomineeName)\n- Nominee Email (q6_nomineeEmail)\n- Department (q7_department)\n- Recognition Title (q8_recognitionTitle)\n- Detailed Description (q9_description)\n- Specific Example (q10_example)\n- Impact on Team (q11_impact)\nCreate your form for free on [Jotform using this link](https://www.jotform.com/?partner=mediajade)"
      },
      "typeVersion": 1
    },
    {
      "id": "c28077cb-cfc6-4f9d-99e8-8a7841e201a1",
      "name": "Extract Recognition Data",
      "type": "n8n-nodes-base.set",
      "position": [
        -688,
        320
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "nominator_name",
              "name": "nominatorName",
              "type": "string",
              "value": "={{ $json.rawRequest['q3_nominatorName'] }}"
            },
            {
              "id": "nominator_email",
              "name": "nominatorEmail",
              "type": "string",
              "value": "={{ $json.rawRequest['q4_nominatorEmail'] }}"
            },
            {
              "id": "nominee_name",
              "name": "nomineeName",
              "type": "string",
              "value": "={{ $json.rawRequest['q5_nomineeName'] }}"
            },
            {
              "id": "nominee_email",
              "name": "nomineeEmail",
              "type": "string",
              "value": "={{ $json.rawRequest['q6_nomineeEmail'] }}"
            },
            {
              "id": "department",
              "name": "department",
              "type": "string",
              "value": "={{ $json.rawRequest['q7_department'] }}"
            },
            {
              "id": "recognition_title",
              "name": "recognitionTitle",
              "type": "string",
              "value": "={{ $json.rawRequest['q8_recognitionTitle'] }}"
            },
            {
              "id": "description",
              "name": "description",
              "type": "string",
              "value": "={{ $json.rawRequest['q9_description'] }}"
            },
            {
              "id": "example",
              "name": "example",
              "type": "string",
              "value": "={{ $json.rawRequest['q10_example'] }}"
            },
            {
              "id": "impact",
              "name": "impact",
              "type": "string",
              "value": "={{ $json.rawRequest['q11_impact'] }}"
            },
            {
              "id": "submission_id",
              "name": "submissionId",
              "type": "string",
              "value": "={{ $json.submissionID }}"
            },
            {
              "id": "submitted_at",
              "name": "submittedAt",
              "type": "string",
              "value": "={{ $now.toISO() }}"
            }
          ]
        }
      },
      "typeVersion": 3.3
    },
    {
      "id": "7fa86947-b282-44b2-b3b6-6552eee4fb06",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -496,
        -64
      ],
      "parameters": {
        "color": 6,
        "width": 440,
        "height": 508,
        "content": "## \ud83e\udd16 AI Recognition Analysis\n\n**Analyzes Recognition For:**\n- Primary Category (Innovation/Teamwork/Leadership/Customer Service/Excellence)\n- Recognition Strength (1-10 score)\n- Key Qualities Demonstrated\n- Impact Level Assessment\n- Award Recommendation\n\n**Uses:** GPT-4 for intelligent categorization and analysis"
      },
      "typeVersion": 1
    },
    {
      "id": "9d20965d-fc31-422a-8c12-722164322404",
      "name": "AI Recognition Analysis",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -480,
        256
      ],
      "parameters": {
        "text": "=Analyze this employee recognition submission and provide comprehensive categorization:\n\nRECOGNITION DETAILS:\nNominee: {{ $json.nomineeName }}\nDepartment: {{ $json.department }}\nRecognition Title: {{ $json.recognitionTitle }}\nDescription: {{ $json.description }}\nSpecific Example: {{ $json.example }}\nImpact: {{ $json.impact }}\n\nProvide analysis in JSON format:\n{\n  \"primaryCategory\": \"Innovation/Teamwork/Leadership/Customer Service/Excellence/Problem Solving/Mentorship\",\n  \"secondaryCategories\": [\"category1\", \"category2\"],\n  \"recognitionStrength\": 1-10,\n  \"keyQualities\": [\"quality1\", \"quality2\", \"quality3\"],\n  \"impactLevel\": \"individual/team/department/company-wide\",\n  \"impactScore\": 1-10,\n  \"behaviorExamples\": [\"specific behavior 1\", \"specific behavior 2\"],\n  \"coreValues\": [\"value1\", \"value2\"],\n  \"awardRecommendation\": \"Employee of the Month/Spot Award/Team Achievement/Leadership Excellence/Innovation Award\",\n  \"nominationQuality\": \"excellent/good/moderate\",\n  \"standoutElements\": [\"element1\", \"element2\"],\n  \"summaryForLeadership\": \"brief 2-3 sentence summary\",\n  \"publicRecognitionText\": \"1-2 sentence version for announcement\",\n  \"suggestedRewardValue\": \"$50/$100/$250/$500\",\n  \"eligibleForMonthlyAward\": true/false,\n  \"reasoningNotes\": \"explanation of categorization\"\n}",
        "agent": "conversationalAgent",
        "options": {
          "systemMessage": "You are an expert HR analyst specializing in employee recognition programs. Analyze nominations objectively, identify genuine impact and exceptional performance, and provide actionable insights for recognition and rewards decisions."
        },
        "promptType": "define"
      },
      "typeVersion": 1.6
    },
    {
      "id": "4a5ccf7c-6f3b-467d-9eb2-167a518bc018",
      "name": "Parse AI Analysis",
      "type": "n8n-nodes-base.set",
      "position": [
        -208,
        256
      ],
      "parameters": {
        "mode": "expressionData",
        "options": {}
      },
      "typeVersion": 3.3
    },
    {
      "id": "f2226ffc-08e1-427d-8f98-8e53d660f8cb",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -16,
        -64
      ],
      "parameters": {
        "color": 2,
        "width": 320,
        "height": 764,
        "content": "## \ud83d\udcca Recognition Tracking\n\n**Google Sheets Logs:**\n- All nomination details\n- AI categorization results\n- Recognition scores\n- Award recommendations\n- Timestamps & status\n\n**Enables:**\n- Monthly award selection\n- Recognition analytics\n- Department insights\n- Trend analysis"
      },
      "typeVersion": 1
    },
    {
      "id": "f2f7b3ed-13a2-4780-b0bb-2cd307e3f2cd",
      "name": "Log to Recognition Sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        96,
        288
      ],
      "parameters": {
        "columns": {
          "value": {
            "impact": "={{ $('Extract Recognition Data').item.json.impact }}",
            "status": "Pending Review",
            "example": "={{ $('Extract Recognition Data').item.json.example }}",
            "timestamp": "={{ $('Extract Recognition Data').item.json.submittedAt }}",
            "coreValues": "={{ $json.coreValues.join(', ') }}",
            "department": "={{ $('Extract Recognition Data').item.json.department }}",
            "description": "={{ $('Extract Recognition Data').item.json.description }}",
            "impactLevel": "={{ $json.impactLevel }}",
            "impactScore": "={{ $json.impactScore }}",
            "nomineeName": "={{ $('Extract Recognition Data').item.json.nomineeName }}",
            "keyQualities": "={{ $json.keyQualities.join(', ') }}",
            "nomineeEmail": "={{ $('Extract Recognition Data').item.json.nomineeEmail }}",
            "submissionId": "={{ $('Extract Recognition Data').item.json.submissionId }}",
            "nominatorName": "={{ $('Extract Recognition Data').item.json.nominatorName }}",
            "nominatorEmail": "={{ $('Extract Recognition Data').item.json.nominatorEmail }}",
            "primaryCategory": "={{ $json.primaryCategory }}",
            "recognitionTitle": "={{ $('Extract Recognition Data').item.json.recognitionTitle }}",
            "nominationQuality": "={{ $json.nominationQuality }}",
            "awardRecommendation": "={{ $json.awardRecommendation }}",
            "recognitionStrength": "={{ $json.recognitionStrength }}",
            "secondaryCategories": "={{ $json.secondaryCategories.join(', ') }}",
            "suggestedRewardValue": "={{ $json.suggestedRewardValue }}",
            "eligibleForMonthlyAward": "={{ $json.eligibleForMonthlyAward ? 'Yes' : 'No' }}"
          },
          "mappingMode": "defineBelow"
        },
        "options": {
          "useAppend": true,
          "cellFormat": "USER_ENTERED"
        },
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "name",
          "value": "Recognition_Log"
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "YOUR_GOOGLE_SHEET_ID"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.4
    },
    {
      "id": "64fda40f-f57b-4106-a09e-d6946af9ac26",
      "name": "Send Nominator Acknowledgment",
      "type": "n8n-nodes-base.gmail",
      "position": [
        624,
        -96
      ],
      "parameters": {
        "sendTo": "={{ $('Extract Recognition Data').item.json.nominatorEmail }}",
        "message": "=<div style='font-family: Arial, sans-serif; max-width: 650px; margin: 0 auto;'>\n  <div style='background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; padding: 40px 30px; text-align: center;'>\n    <h1 style='margin: 0;'>Thank You!</h1>\n    <p style='margin: 15px 0 0 0;'>Your recognition has been received</p>\n  </div>\n  <div style='background-color: #fff; padding: 30px;'>\n    <p>Hi {{ $('Extract Recognition Data').item.json.nominatorName.split(' ')[0] }},</p>\n    <p>Thank you for recognizing <strong>{{ $('Extract Recognition Data').item.json.nomineeName }}</strong>!</p>\n    <div style='background-color: #e7f3ff; padding: 20px; margin: 20px 0;'>\n      <h3>AI Analysis Results</h3>\n      <p><strong>Category:</strong> {{ $json.primaryCategory }}</p>\n      <p><strong>Recognition Strength:</strong> {{ $json.recognitionStrength }}/10</p>\n      <p><strong>Impact Level:</strong> {{ $json.impactLevel }}</p>\n    </div>\n    <p>Your nomination helps us build a culture of appreciation!</p>\n  </div>\n</div>",
        "options": {},
        "subject": "=Thank You for Recognizing {{ $('Extract Recognition Data').item.json.nomineeName }}!"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "26df9307-1b65-4e88-85c6-2002f0b085f7",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        320,
        192
      ],
      "parameters": {
        "color": 5,
        "width": 512,
        "height": 312,
        "content": "## \ud83c\udf89 Nominee Notification\n\n**Recognition Email:**\n- You've been recognized!\n- Who nominated you\n- Why you were recognized\n- Public recognition message\n- Reinforces positive behavior\n\n**Boosts Morale:** Immediate feedback"
      },
      "typeVersion": 1
    },
    {
      "id": "0a2a369f-8e7d-4ad2-a540-3323ef8766f6",
      "name": "Send Nominee Notification",
      "type": "n8n-nodes-base.gmail",
      "position": [
        656,
        240
      ],
      "parameters": {
        "sendTo": "={{ $('Extract Recognition Data').item.json.nomineeEmail }}",
        "message": "=<div style='font-family: Arial, sans-serif; max-width: 650px; margin: 0 auto;'>\n  <div style='background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%); color: white; padding: 50px 30px; text-align: center;'>\n    <div style='font-size: 60px;'>\ud83c\udf1f</div>\n    <h1 style='margin: 10px 0;'>Congratulations!</h1>\n    <p style='margin: 10px 0;'>You've been recognized</p>\n  </div>\n  <div style='background-color: #fff; padding: 30px;'>\n    <p>Hi {{ $('Extract Recognition Data').item.json.nomineeName.split(' ')[0] }},</p>\n    <p><strong>{{ $('Extract Recognition Data').item.json.nominatorName }}</strong> has recognized you!</p>\n    <div style='background-color: #667eea; color: white; padding: 25px; border-radius: 8px; margin: 20px 0;'>\n      <h2 style='margin: 0; text-align: center;'>{{ $('Extract Recognition Data').item.json.recognitionTitle }}</h2>\n      <p style='margin: 15px 0; text-align: center; font-style: italic;'>{{ $json.publicRecognitionText }}</p>\n    </div>\n    <div style='background-color: #e7f3ff; padding: 20px; margin: 20px 0;'>\n      <h3>Recognition Highlights</h3>\n      <p><strong>Category:</strong> {{ $json.primaryCategory }}</p>\n      <p><strong>Impact Level:</strong> {{ $json.impactLevel }}</p>\n    </div>\n    <p>Keep up the amazing work!</p>\n  </div>\n</div>",
        "options": {},
        "subject": "=You've Been Recognized by {{ $('Extract Recognition Data').item.json.nominatorName }}!"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "f947a01d-80c8-4481-8da2-90af0182bba0",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        336,
        512
      ],
      "parameters": {
        "color": 7,
        "width": 320,
        "height": 376,
        "content": "## \ud83d\udc54 HR Leadership Notification\n\n**Summary to HR/Leadership:**\n- New recognition received\n- AI analysis summary\n- Award recommendation\n- Monthly award eligibility\n\n**Enables:** Quick review"
      },
      "typeVersion": 1
    },
    {
      "id": "854fd1e0-e088-46d9-8e3f-d4dae94f6585",
      "name": "Notify HR Leadership",
      "type": "n8n-nodes-base.gmail",
      "position": [
        464,
        752
      ],
      "parameters": {
        "sendTo": "user@example.com",
        "message": "=<div style='font-family: Arial, sans-serif; max-width: 700px; margin: 0 auto;'>\n  <div style='background-color: #667eea; color: white; padding: 25px;'>\n    <h1 style='margin: 0;'>New Employee Recognition</h1>\n  </div>\n  <div style='background-color: #fff; padding: 25px;'>\n    <h2>Recognition Summary</h2>\n    <p><strong>Nominee:</strong> {{ $('Extract Recognition Data').item.json.nomineeName }} ({{ $('Extract Recognition Data').item.json.department }})</p>\n    <p><strong>Nominated By:</strong> {{ $('Extract Recognition Data').item.json.nominatorName }}</p>\n    <p><strong>Category:</strong> {{ $json.primaryCategory }}</p>\n    <p><strong>Recognition Strength:</strong> {{ $json.recognitionStrength }}/10</p>\n    <p><strong>Impact Score:</strong> {{ $json.impactScore }}/10</p>\n    <p><strong>Award Recommendation:</strong> {{ $json.awardRecommendation }}</p>\n    <p><strong>Suggested Reward:</strong> {{ $json.suggestedRewardValue }}</p>\n    <p><strong>Monthly Award Eligible:</strong> {{ $json.eligibleForMonthlyAward ? 'YES' : 'NO' }}</p>\n  </div>\n</div>",
        "options": {},
        "subject": "=New Recognition: {{ $('Extract Recognition Data').item.json.nomineeName }} - {{ $json.primaryCategory }}"
      },
      "typeVersion": 2.1
    },
    {
      "id": "8cbe052e-1432-4224-ada6-668fe2f8e2ab",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1232,
        624
      ],
      "parameters": {
        "width": 340,
        "height": 504,
        "content": "## \ud83d\udcc5 Monthly Award Selection\n\n**Automated Process:**\n- Runs on 1st of month\n- Reads eligible nominations\n- Generates award report\n- Sends to leadership\n\n**Streamlines:** Employee of Month selection"
      },
      "typeVersion": 1
    },
    {
      "id": "8832751e-0b10-4610-85c1-cae8abd0f426",
      "name": "Monthly Award Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -1120,
        912
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "cronExpression",
              "expression": "0 9 1 * *"
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "92741cd7-9f6a-4426-a0a3-92cba8a76f96",
      "name": "Read Recognition Log",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -800,
        912
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "name",
          "value": "Recognition_Log"
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "YOUR_GOOGLE_SHEET_ID"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.4
    },
    {
      "id": "a6117dbb-d16d-40b0-80df-2d409c3fffcc",
      "name": "Filter Monthly Eligible",
      "type": "n8n-nodes-base.code",
      "position": [
        -528,
        912
      ],
      "parameters": {
        "jsCode": "const now = new Date();\nconst lastMonth = new Date(now.getFullYear(), now.getMonth() - 1, 1);\nconst thisMonth = new Date(now.getFullYear(), now.getMonth(), 1);\nconst eligibleNominations = [];\n\nfor (const item of $input.all()) {\n  const nomination = item.json;\n  if (nomination.eligibleForMonthlyAward !== 'Yes') continue;\n  const nominationDate = new Date(nomination.timestamp);\n  if (nominationDate >= lastMonth && nominationDate < thisMonth) {\n    eligibleNominations.push({\n      json: {\n        ...nomination,\n        monthYear: lastMonth.toLocaleString('default', { month: 'long', year: 'numeric' })\n      }\n    });\n  }\n}\n\neligibleNominations.sort((a, b) => {\n  const scoreA = (parseFloat(a.json.recognitionStrength) + parseFloat(a.json.impactScore)) / 2;\n  const scoreB = (parseFloat(b.json.recognitionStrength) + parseFloat(b.json.impactScore)) / 2;\n  return scoreB - scoreA;\n});\n\nreturn eligibleNominations;"
      },
      "typeVersion": 2
    },
    {
      "id": "709520dd-41f1-4582-a06b-3054855b9de3",
      "name": "Check Has Nominations",
      "type": "n8n-nodes-base.if",
      "position": [
        -288,
        912
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "has_nominations",
              "operator": {
                "type": "string",
                "operation": "notEmpty"
              },
              "leftValue": "={{ $json.nomineeName }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2
    },
    {
      "id": "d4f615b5-0c50-4ef3-9890-a40b07c77169",
      "name": "Generate Award Report",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        16,
        896
      ],
      "parameters": {
        "text": "=Generate Employee of the Month report:\n\n{{ JSON.stringify($input.all().map(item => item.json)) }}\n\nProvide in JSON:\n{\n  \"monthYear\": \"month year\",\n  \"totalNominations\": number,\n  \"winnerRecommendation\": \"name\",\n  \"winnerJustification\": \"reasoning\",\n  \"runnerUp\": \"name\",\n  \"executiveSummary\": \"summary\"\n}",
        "agent": "conversationalAgent",
        "options": {
          "systemMessage": "You are an HR analytics expert. Analyze nominations and recommend Employee of the Month winner."
        },
        "promptType": "define"
      },
      "typeVersion": 1.6
    },
    {
      "id": "146ecedb-db1d-4900-81f7-efd6169963ff",
      "name": "Parse Award Report",
      "type": "n8n-nodes-base.set",
      "position": [
        384,
        896
      ],
      "parameters": {
        "mode": "expressionData",
        "options": {}
      },
      "typeVersion": 3.3
    },
    {
      "id": "b4e916a5-336b-42d4-bd30-6196f0071a71",
      "name": "Send Award Report",
      "type": "n8n-nodes-base.gmail",
      "position": [
        656,
        912
      ],
      "parameters": {
        "sendTo": "user@example.com",
        "message": "=<div style='font-family: Arial, sans-serif; max-width: 800px; margin: 0 auto;'>\n  <div style='background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; padding: 40px; text-align: center;'>\n    <h1>Employee of the Month</h1>\n    <p>{{ $json.monthYear }}</p>\n  </div>\n  <div style='background-color: #fff; padding: 30px;'>\n    <h2>Executive Summary</h2>\n    <p>{{ $json.executiveSummary }}</p>\n    <div style='background-color: #d4edda; padding: 25px; margin: 25px 0;'>\n      <h2>Recommended Winner</h2>\n      <h3>{{ $json.winnerRecommendation }}</h3>\n      <p>{{ $json.winnerJustification }}</p>\n    </div>\n    <div style='background-color: #fff3cd; padding: 25px;'>\n      <h3>Runner-Up</h3>\n      <p>{{ $json.runnerUp }}</p>\n    </div>\n  </div>\n</div>",
        "options": {
          "ccList": "user@example.com"
        },
        "subject": "=Employee of the Month Report - {{ $json.monthYear }}"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "4415bfb7-78fa-477a-99cf-4584614123f0",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        16,
        1088
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "38cb80b1-5303-4df0-b07a-e9fac3934e79",
      "name": "OpenAI Chat Model1",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -624,
        464
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "c90ff216-57bb-4222-b250-5590e216c6c3",
      "name": "Jotform Trigger",
      "type": "n8n-nodes-base.jotFormTrigger",
      "position": [
        -848,
        320
      ],
      "parameters": {},
      "typeVersion": 1
    }
  ],
  "connections": {
    "Jotform Trigger": {
      "main": [
        [
          {
            "node": "Extract Recognition Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Generate Award Report",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Parse AI Analysis": {
      "main": [
        [
          {
            "node": "Log to Recognition Sheet",
            "type": "main",
            "index": 0
          },
          {
            "node": "Send Nominator Acknowledgment",
            "type": "main",
            "index": 0
          },
          {
            "node": "Send Nominee Notification",
            "type": "main",
            "index": 0
          },
          {
            "node": "Notify HR Leadership",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model1": {
      "ai_languageModel": [
        [
          {
            "node": "AI Recognition Analysis",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Parse Award Report": {
      "main": [
        [
          {
            "node": "Send Award Report",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Read Recognition Log": {
      "main": [
        [
          {
            "node": "Filter Monthly Eligible",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Has Nominations": {
      "main": [
        [
          {
            "node": "Generate Award Report",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Award Report": {
      "main": [
        [
          {
            "node": "Parse Award Report",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Monthly Award Trigger": {
      "main": [
        [
          {
            "node": "Read Recognition Log",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Recognition Analysis": {
      "main": [
        [
          {
            "node": "Parse AI Analysis",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter Monthly Eligible": {
      "main": [
        [
          {
            "node": "Check Has Nominations",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract Recognition Data": {
      "main": [
        [
          {
            "node": "AI Recognition Analysis",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Transform manual peer recognition into a transparent, engaging, and automated reward system - achieving 300% increase in recognition submissions, 85% employee satisfaction improvement, and building a culture where great work is celebrated instantly.

Source: https://n8n.io/workflows/9817/ — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

This n8n automation workflow automates the creation, scripting, production, and posting of YouTube videos. It leverages AI (OpenAI), image generation (PIAPI), video rendering (Shotstack), and platform

Agent, OpenAI Chat, Airtable Tool +7
AI & RAG

Created by: Peyton Leveillee Last updated: October 2025

OpenAI Chat, Google Sheets, HTTP Request +5
AI & RAG

The Multi-Model Agency Content Engine is a high-performance editorial system designed for agencies. It solves the "blank page" problem by alternating between real-world social proof and strategic expe

Google Sheets, Gmail, Google Drive +6
AI & RAG

This workflow automates the creation, rendering, approval, and posting of TikTok-style POV (Point of View) videos to Instagram, with cross-posting to Facebook and YouTube. It eliminates manual video p

OpenAI Chat, Output Parser Item List, HTTP Request +10
AI & RAG

SEO Blog Article Generation Workflow. Uses outputParserStructured, httpRequest, agent, lmChatOpenAi. Scheduled trigger; 56 nodes.

Output Parser Structured, HTTP Request, Agent +4