This workflow follows the Execute Workflow Trigger → Google Sheets 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 →
{
"meta": {
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "4bdd4360-b518-4b46-81fa-0d3183ce642d",
"name": "When Executed by Another Workflow",
"type": "n8n-nodes-base.executeWorkflowTrigger",
"position": [
680,
260
],
"parameters": {
"workflowInputs": {
"values": [
{
"name": "operation"
},
{
"name": "query"
},
{
"name": "employeeId"
},
{
"name": "values",
"type": "object"
}
]
}
},
"typeVersion": 1.1
},
{
"id": "74bdcff0-0615-4d81-82ff-ff8340939399",
"name": "Operation",
"type": "n8n-nodes-base.switch",
"position": [
1040,
260
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "searchEmployee",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "81b134bc-d671-4493-b3ad-8df9be3f49a6",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $('When Executed by Another Workflow').first().json.operation }}",
"rightValue": "searchEmployees"
}
]
},
"renameOutput": true
},
{
"outputKey": "getEmployeeById",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "8d57914f-6587-4fb3-88e0-aa1de6ba56c1",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $('When Executed by Another Workflow').first().json.operation }}",
"rightValue": "getEmployeeById"
}
]
},
"renameOutput": true
},
{
"outputKey": "updateEmployee",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "7c38f238-213a-46ec-aefe-22e0bcb8dffc",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $('When Executed by Another Workflow').first().json.operation }}",
"rightValue": "updateEmployee"
}
]
},
"renameOutput": true
}
]
},
"options": {}
},
"typeVersion": 3.2
},
{
"id": "8850cd57-9bc1-43b7-9366-7d91afc7bc42",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-80,
-120
],
"parameters": {
"color": 7,
"width": 680,
"height": 660,
"content": "## 1. MCP \uc11c\ubc84 \ud2b8\ub9ac\uac70 \uc124\uc815\n\n[MCP \uc11c\ubc84 \ud2b8\ub9ac\uac70\uc5d0 \ub300\ud574 \ub354 \uc77d\uae30](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-langchain.mcptrigger)"
},
"typeVersion": 1
},
{
"id": "ad541df3-44ed-4ef4-af91-841dc9986b4c",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
620,
-120
],
"parameters": {
"color": 7,
"width": 600,
"height": 260,
"content": "## 2. \uae30\uc874 API\ub97c \ud65c\uc6a9\ud558\uc5ec MCP \uc11c\ubc84 \uad6c\ucd95\n\n[HTTP Request Node\uc5d0 \ub300\ud574 \ub354 \uc77d\uae30](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest)\n\nN8N\uc740 \ubaa8\ub4e0 \uc870\uc9c1\uc774 \uae30\uc874 API\ub97c \ud65c\uc6a9\ud558\uc5ec \uc790\uc2e0\uc758 MCP \uc11c\ubc84\ub97c \ube60\ub974\uac8c \uad6c\ucd95\ud558\uace0 \ud638\uc2a4\ud305\ud560 \uc218 \uc788\uac8c \ud569\ub2c8\ub2e4. PayCaptain.com\uc5d0 \ub300\ud55c \uac04\ub2e8\ud55c \uc608\uc785\ub2c8\ub2e4 - \ud604\ub300 \uae30\uc5c5\uc744 \uc704\ud55c \ud074\ub77c\uc6b0\ub4dc \uae30\ubc18 \uae09\uc5ec \uc18c\ud504\ud2b8\uc6e8\uc5b4\uc785\ub2c8\ub2e4.\n\n\uc774 \ub3c4\uad6c \uc138\ud2b8\ub85c Paycaptain \uace0\uac1d\uc740 Claude Desktop\uacfc \uac19\uc740 \uc88b\uc544\ud558\ub294 MCP \ud074\ub77c\uc774\uc5b8\ud2b8 \ub0b4\uc5d0\uc11c \uc9c1\uc6d0 \uad00\ub9ac\ub97c \uac04\uc18c\ud654\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uac8c\ub2e4\uac00 n8n\uc740 \ubc30\ud3ec\ub3c4 \ucc98\ub9ac\ud558\ubbc0\ub85c \uc774 MCP \uc11c\ubc84\uac00 \uc804\uccb4 \ubd80\uc11c\ub97c \uc11c\ube44\uc2a4\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4."
},
"typeVersion": 1
},
{
"id": "962cb379-8916-4a9f-8a7b-5aa9d31d5d88",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-80,
-240
],
"parameters": {
"color": 5,
"width": 380,
"height": 100,
"content": "\ud56d\uc0c1 \uc11c\ubc84\ub97c \uc778\uc99d\ud558\uc138\uc694! \ud504\ub85c\ub355\uc158\uc73c\ub85c \uac00\uae30 \uc804\uc5d0, MCP \uc11c\ubc84 \ud2b8\ub9ac\uac70\uc5d0\uc11c \uc778\uc99d\uc744 \ud65c\uc131\ud654\ud558\ub294 \uac83\uc774 \ud56d\uc0c1 \uc870\uc5b8\ub429\ub2c8\ub2e4."
},
"typeVersion": 1
},
{
"id": "27163110-36d7-46f3-92fc-dce7d000655e",
"name": "Paycaptain MCP Server",
"type": "@n8n/n8n-nodes-langchain.mcpTrigger",
"position": [
80,
40
],
"parameters": {
"path": "5f6728df-d3e8-48bb-9a38-0f2e54c7962c"
},
"typeVersion": 1
},
{
"id": "13a69580-de33-489a-85c8-582877efbfe0",
"name": "Update Employee",
"type": "@n8n/n8n-nodes-langchain.toolWorkflow",
"position": [
380,
260
],
"parameters": {
"name": "updateEmployee",
"workflowId": {
"__rl": true,
"mode": "id",
"value": "={{ $workflow.id }}"
},
"description": "Updates an employee's details.",
"workflowInputs": {
"value": {
"query": "null",
"values": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('values', ``, 'string') }}",
"operation": "updateEmployee",
"employeeId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('employeeId', ``, 'string') }}"
},
"schema": [
{
"id": "operation",
"type": "string",
"display": true,
"required": false,
"displayName": "operation",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "query",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "query",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "employeeId",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "employeeId",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "values",
"type": "object",
"display": true,
"required": false,
"displayName": "values",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
}
},
"typeVersion": 2.1
},
{
"id": "68c066f0-657c-46cb-a9fe-b31e9850c512",
"name": "Get Employee",
"type": "@n8n/n8n-nodes-langchain.toolWorkflow",
"position": [
240,
360
],
"parameters": {
"name": "getEmployeeById",
"workflowId": {
"__rl": true,
"mode": "id",
"value": "={{ $workflow.id }}"
},
"description": "Returns an employee's details by employee ID.",
"workflowInputs": {
"value": {
"query": "null",
"values": "null",
"operation": "getEmployeeById",
"employeeId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('employeeId', ``, 'string') }}"
},
"schema": [
{
"id": "operation",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "operation",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "query",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "query",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "employeeId",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "employeeId",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "values",
"type": "object",
"display": true,
"removed": false,
"required": false,
"displayName": "values",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
}
},
"typeVersion": 2.1
},
{
"id": "87661e95-b618-4701-b0f3-9f0532d5fc75",
"name": "Get Employees",
"type": "n8n-nodes-base.httpRequest",
"position": [
1380,
60
],
"parameters": {
"url": "https://api.paycaptain.com/employees",
"options": {
"pagination": {
"pagination": {
"parameters": {
"parameters": [
{
"name": "page",
"value": "={{ $request.qs.page + 1 }}"
}
]
},
"maxRequests": 3,
"requestInterval": 1000,
"limitPagesFetched": true
}
}
},
"sendQuery": true,
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"queryParameters": {
"parameters": [
{
"name": "company",
"value": "paycaptain"
},
{
"name": "page",
"value": "={{ $json.page ?? 1 }}"
}
]
}
},
"credentials": {
"httpHeaderAuth": {
"name": "<your credential>"
}
},
"typeVersion": 4.2
},
{
"id": "866868e2-e0b0-4d8d-bf3c-57d68fea8b86",
"name": "Search Employees",
"type": "@n8n/n8n-nodes-langchain.toolWorkflow",
"position": [
100,
260
],
"parameters": {
"name": "searchEmployees",
"workflowId": {
"__rl": true,
"mode": "id",
"value": "={{ $workflow.id }}"
},
"description": "Searches for and returns an employee's details.",
"workflowInputs": {
"value": {
"query": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('query', ``, 'string') }}",
"values": "null",
"operation": "searchEmployees",
"employeeId": "null"
},
"schema": [
{
"id": "operation",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "operation",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "query",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "query",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "employeeId",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "employeeId",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "values",
"type": "object",
"display": true,
"removed": false,
"required": false,
"displayName": "values",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
}
},
"typeVersion": 2.1
},
{
"id": "679a2413-448f-43d8-98fc-7fd8b83775e7",
"name": "Log Call",
"type": "n8n-nodes-base.googleSheets",
"position": [
860,
260
],
"parameters": {
"columns": {
"value": {
"query": "={{ $json.query }}",
"values": "={{ $json.values.toJsonString() }}",
"operation": "={{ $json.operation }}",
"timestamp": "={{ $now.toISO() }}",
"employeeId": "={{ $json.employeeId }}"
},
"schema": [
{
"id": "timestamp",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "timestamp",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "operation",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "operation",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "query",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "query",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "employeeId",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "employeeId",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "values",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "values",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {
"useAppend": true
},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Ls_3pmzIafl1NUAzzflkJgyq1smPW6vfGjbVuVzdkac/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1Ls_3pmzIafl1NUAzzflkJgyq1smPW6vfGjbVuVzdkac",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Ls_3pmzIafl1NUAzzflkJgyq1smPW6vfGjbVuVzdkac/edit?usp=drivesdk",
"cachedResultName": "98. MCP Audit"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.5
},
{
"id": "7723947c-94a3-4bf1-b6c8-b595027a33dc",
"name": "Filter Matches",
"type": "n8n-nodes-base.filter",
"position": [
1580,
60
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "baa681eb-d6d9-450b-99ab-58d33e81cef4",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{\n[\n $json.hrEmployeeId,\n $json.payrollCode,\n $json.firstName + ' ' + $json.lastName,\n $json.email,\n $json.niNumber,\n $json.mailingCity,\n $json.jobTitle,\n $json.jobGrade,\n $json.department,\n $json.team\n]\n .join(' ')\n .toLowerCase()\n}}",
"rightValue": "={{ $('When Executed by Another Workflow').first().json.query.toLowerCase() }}"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "f4d1ddd9-dde7-437f-9aa2-969ea0832f71",
"name": "Aggregate Search Results",
"type": "n8n-nodes-base.aggregate",
"position": [
2020,
60
],
"parameters": {
"options": {},
"aggregate": "aggregateAllItemData",
"destinationFieldName": "response"
},
"typeVersion": 1
},
{
"id": "45076cec-f554-44ae-b314-e43ba080abb5",
"name": "Get Employees1",
"type": "n8n-nodes-base.httpRequest",
"position": [
1380,
260
],
"parameters": {
"url": "https://api.paycaptain.com/employees",
"options": {
"pagination": {
"pagination": {
"parameters": {
"parameters": [
{
"name": "page",
"value": "={{ $request.qs.page + 1 }}"
}
]
},
"maxRequests": 3,
"requestInterval": 1000,
"limitPagesFetched": true
}
}
},
"sendQuery": true,
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"queryParameters": {
"parameters": [
{
"name": "company",
"value": "paycaptain"
},
{
"name": "page",
"value": "={{ $json.page ?? 1 }}"
}
]
}
},
"credentials": {
"httpHeaderAuth": {
"name": "<your credential>"
}
},
"typeVersion": 4.2
},
{
"id": "b6f3a56f-5cd2-4f4d-904b-49e82ec591b8",
"name": "Filter Matching ID",
"type": "n8n-nodes-base.filter",
"position": [
1580,
260
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "cfb2ba5b-14c0-4867-be4d-180306c896ae",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.hrEmployeeId }}",
"rightValue": "={{ $('When Executed by Another Workflow').first().json.employeeId }}"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "ecc2d8d5-4a23-4bfd-840b-63c28980462f",
"name": "Strip Sensitive Fields1",
"type": "n8n-nodes-base.set",
"position": [
1800,
260
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "e20217cf-7c70-4907-9da6-a114104a099e",
"name": "company",
"type": "string",
"value": "={{ $json.company }}"
},
{
"id": "2dfe8342-c442-4ac3-90bd-92fe7d38d407",
"name": "hrEmployeeId",
"type": "string",
"value": "={{ $json.hrEmployeeId }}"
},
{
"id": "57fe4519-246b-44aa-a0c9-22e1e865041c",
"name": "payrollCode",
"type": "string",
"value": "={{ $json.payrollCode }}"
},
{
"id": "d296021c-09b2-43b2-8b8e-ebb5d7d9d14d",
"name": "firstName",
"type": "string",
"value": "={{ $json.firstName }}"
},
{
"id": "661e0049-d28f-4f78-83fc-7a1b21f742c2",
"name": "lastName",
"type": "string",
"value": "={{ $json.lastName }}"
},
{
"id": "59f7fd87-ba84-426a-ad61-c682cf8227bf",
"name": "email",
"type": "string",
"value": "={{ $json.email }}"
},
{
"id": "9769c078-c5f5-4d56-b467-765dd73444f9",
"name": "phone",
"type": "string",
"value": "={{ $json.phone }}"
},
{
"id": "e387bc11-dccf-4baf-b87f-a2abb5f61b5d",
"name": "mailingStreet",
"type": "string",
"value": "={{ $json.mailingStreet }}"
},
{
"id": "415451c5-c3c1-42d4-9f5b-829277bfb7f3",
"name": "mailingStateProvince",
"type": "string",
"value": "={{ $json.mailingStateProvince }}"
},
{
"id": "cf2a83f4-28a8-44bd-9d06-780db1406f8f",
"name": "mailingPostalCode",
"type": "string",
"value": "={{ $json.mailingPostalCode }}"
},
{
"id": "94ee2e05-9969-43f2-a732-57356f8b4dfe",
"name": "mailingCountry",
"type": "string",
"value": "={{ $json.mailingCountry }}"
},
{
"id": "b01a56c9-fc42-4bff-9443-27075699986f",
"name": "location",
"type": "string",
"value": "={{ $json.location }}"
},
{
"id": "b9175d72-6976-4765-b773-f4521668d130",
"name": "department",
"type": "string",
"value": "={{ $json.department }}"
},
{
"id": "d784e800-e13b-4d43-907c-11aaaf4ee24f",
"name": "team",
"type": "string",
"value": "={{ $json.team }}"
},
{
"id": "1ff68eb6-35f9-4a2d-9a37-14b3a6f6e0ee",
"name": "jobGrade",
"type": "string",
"value": "={{ $json.jobGrade }}"
},
{
"id": "5628bbf8-872d-4e3a-bf37-c36f13c0f4b1",
"name": "jobTitle",
"type": "string",
"value": "={{ $json.jobTitle }}"
},
{
"id": "34f26d59-43b3-4f2c-955b-f6d5ab22a083",
"name": "jobEffectiveDate",
"type": "string",
"value": "={{ $json.jobEffectiveDate }}"
},
{
"id": "e3023e94-fbc8-4e9b-b106-687ea533e3f8",
"name": "contractType",
"type": "string",
"value": "={{ $json.contractType }}"
},
{
"id": "d3dcf24c-5e9b-40e5-9f54-fca930ab1528",
"name": "normalWeeklyHours",
"type": "number",
"value": "={{ $json.normalWeeklyHours }}"
},
{
"id": "65ed75a6-1ec1-456f-b19b-4492e31f5c18",
"name": "daysWorkedPerWeek",
"type": "number",
"value": "={{ $json.daysWorkedPerWeek }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "77a71a55-f0cf-4f76-b697-b31dba447f30",
"name": "Strip Sensitive Fields",
"type": "n8n-nodes-base.set",
"position": [
1800,
60
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "e20217cf-7c70-4907-9da6-a114104a099e",
"name": "company",
"type": "string",
"value": "={{ $json.company }}"
},
{
"id": "2dfe8342-c442-4ac3-90bd-92fe7d38d407",
"name": "hrEmployeeId",
"type": "string",
"value": "={{ $json.hrEmployeeId }}"
},
{
"id": "57fe4519-246b-44aa-a0c9-22e1e865041c",
"name": "payrollCode",
"type": "string",
"value": "={{ $json.payrollCode }}"
},
{
"id": "d296021c-09b2-43b2-8b8e-ebb5d7d9d14d",
"name": "firstName",
"type": "string",
"value": "={{ $json.firstName }}"
},
{
"id": "661e0049-d28f-4f78-83fc-7a1b21f742c2",
"name": "lastName",
"type": "string",
"value": "={{ $json.lastName }}"
},
{
"id": "59f7fd87-ba84-426a-ad61-c682cf8227bf",
"name": "email",
"type": "string",
"value": "={{ $json.email }}"
},
{
"id": "9769c078-c5f5-4d56-b467-765dd73444f9",
"name": "phone",
"type": "string",
"value": "={{ $json.phone }}"
},
{
"id": "e387bc11-dccf-4baf-b87f-a2abb5f61b5d",
"name": "mailingStreet",
"type": "string",
"value": "={{ $json.mailingStreet }}"
},
{
"id": "415451c5-c3c1-42d4-9f5b-829277bfb7f3",
"name": "mailingStateProvince",
"type": "string",
"value": "={{ $json.mailingStateProvince }}"
},
{
"id": "cf2a83f4-28a8-44bd-9d06-780db1406f8f",
"name": "mailingPostalCode",
"type": "string",
"value": "={{ $json.mailingPostalCode }}"
},
{
"id": "94ee2e05-9969-43f2-a732-57356f8b4dfe",
"name": "mailingCountry",
"type": "string",
"value": "={{ $json.mailingCountry }}"
},
{
"id": "b01a56c9-fc42-4bff-9443-27075699986f",
"name": "location",
"type": "string",
"value": "={{ $json.location }}"
},
{
"id": "b9175d72-6976-4765-b773-f4521668d130",
"name": "department",
"type": "string",
"value": "={{ $json.department }}"
},
{
"id": "d784e800-e13b-4d43-907c-11aaaf4ee24f",
"name": "team",
"type": "string",
"value": "={{ $json.team }}"
},
{
"id": "1ff68eb6-35f9-4a2d-9a37-14b3a6f6e0ee",
"name": "jobGrade",
"type": "string",
"value": "={{ $json.jobGrade }}"
},
{
"id": "5628bbf8-872d-4e3a-bf37-c36f13c0f4b1",
"name": "jobTitle",
"type": "string",
"value": "={{ $json.jobTitle }}"
},
{
"id": "34f26d59-43b3-4f2c-955b-f6d5ab22a083",
"name": "jobEffectiveDate",
"type": "string",
"value": "={{ $json.jobEffectiveDate }}"
},
{
"id": "e3023e94-fbc8-4e9b-b106-687ea533e3f8",
"name": "contractType",
"type": "string",
"value": "={{ $json.contractType }}"
},
{
"id": "d3dcf24c-5e9b-40e5-9f54-fca930ab1528",
"name": "normalWeeklyHours",
"type": "number",
"value": "={{ $json.normalWeeklyHours }}"
},
{
"id": "65ed75a6-1ec1-456f-b19b-4492e31f5c18",
"name": "daysWorkedPerWeek",
"type": "number",
"value": "={{ $json.daysWorkedPerWeek }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "86f73b12-afc8-4694-a79d-45c908cc88dd",
"name": "Update Employee1",
"type": "n8n-nodes-base.httpRequest",
"position": [
1800,
460
],
"parameters": {
"url": "https://api.paycaptain.com/employee",
"method": "POST",
"options": {
"pagination": {
"pagination": {
"parameters": {
"parameters": [
{
"name": "page",
"value": "={{ $request.qs.page + 1 }}"
}
]
},
"maxRequests": 3,
"requestInterval": 1000,
"limitPagesFetched": true
}
}
},
"jsonBody": "={{\n{\n hrEmployeeId: $('When Executed by Another Workflow').item.json.employeeId,\n ..\n}\n}}",
"sendBody": true,
"specifyBody": "json",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"name": "<your credential>"
}
},
"typeVersion": 4.2
},
{
"id": "122fe6f7-3bcd-4f29-a95c-c727a799e1fd",
"name": "Valid Fields Only",
"type": "n8n-nodes-base.set",
"position": [
1380,
460
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "4f3d0703-21f3-4ca1-bf7a-9c80d9efc936",
"name": "values",
"type": "object",
"value": "={{\n([\n \"firstname\",\n \"middlename\",\n \"lastname\",\n \"mailingStreet\",\n \"mailingCity\",\n \"mailingStateProvince\",\n \"mailingPostalCode\",\n \"mailingCountry\",\n \"email\",\n \"phone\",\n \"niNumber\",\n \"location\",\n \"department\",\n \"team\",\n \"jobGrade\",\n \"jobTitle\",\n]\n .reduce((acc, key) => ({\n ...acc,\n [key]: $('When Executed by Another Workflow').item.json.values[key] ?? undefined\n }), {}))\n}}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "13e5f143-1abf-444c-b86c-ae51fe839894",
"name": "Has Valid Request?",
"type": "n8n-nodes-base.if",
"position": [
1580,
460
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "54d35a49-e698-427d-9fca-280b83f2827d",
"operator": {
"type": "object",
"operation": "notEmpty",
"singleValue": true
},
"leftValue": "={{ $json.values }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "b98f1d73-a994-4040-b421-75e626ec4ce6",
"name": "Get Error Response",
"type": "n8n-nodes-base.set",
"position": [
1800,
640
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "b33ebf1d-d0e8-4dda-90e7-b53c21b2a410",
"name": "response",
"type": "string",
"value": "=Request included fields which cannot be updated. Editable fields are: {{ [\n \"firstname\",\n \"middlename\",\n \"lastname\",\n \"mailingStreet\",\n \"mailingCity\",\n \"mailingStateProvince\",\n \"mailingPostalCode\",\n \"mailingCountry\",\n \"email\",\n \"phone\",\n \"niNumber\",\n \"location\",\n \"department\",\n \"team\",\n \"jobGrade\",\n \"jobTitle\",\n].join(', ')}}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "cb140f3f-571c-49a4-a24d-dcee11c5b7e1",
"name": "Get Success Response",
"type": "n8n-nodes-base.set",
"position": [
2020,
460
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "a1d245c9-b1e5-4cec-a901-4a6ecc9bd98d",
"name": "response",
"type": "string",
"value": "ok"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "39cd1188-5f2e-45ce-8bbc-0586812491ec",
"name": "Aggregate Get Response",
"type": "n8n-nodes-base.aggregate",
"position": [
2020,
260
],
"parameters": {
"options": {},
"aggregate": "aggregateAllItemData",
"destinationFieldName": "response"
},
"typeVersion": 1
},
{
"id": "d9c1ed21-29e4-41a6-9855-36f1568f7944",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
620,
-360
],
"parameters": {
"color": 7,
"width": 400,
"height": 220,
"content": "\uc6f9\uc0ac\uc774\ud2b8: https://paycaptain.com \n\uac1c\ubc1c\uc790 \ud5c8\ube0c: https://developer.paycaptain.com \n\n\uc54c\uc544\ub450\uc138\uc694: PayCaptain\uc740 n8n London Meetups\ub97c \ud6c4\uc6d0\ud569\ub2c8\ub2e4 - \ud655\uc2e4\ud788 \ud655\uc778\ud558\uc138\uc694!"
},
"typeVersion": 1
},
{
"id": "efc7ab35-202d-4a1f-98ce-7ae310c22250",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-540,
-640
],
"parameters": {
"width": 440,
"height": 1180,
"content": "## \uc2dc\ub3c4\ud574 \ubcf4\uc138\uc694!\n\n### \uc774 n8n\uc740 \uc5b4\ub5a4 \uc870\uc9c1\uc774\ub4e0 \uace0\uac1d\uc774\ub098 \ub0b4\ubd80 \uc9c1\uc6d0\uc5d0\uac8c MCP \uc11c\ubc84\ub97c \ube60\ub974\uace0 \uc27d\uac8c \uad6c\ucd95\ud558\uc5ec \uc81c\uacf5\ud558\uc5ec \uc0dd\uc0b0\uc131\uc744 \ud5a5\uc0c1\uc2dc\ud0ac \uc218 \uc788\uc74c\uc744 \ubcf4\uc5ec\uc90d\ub2c8\ub2e4.\n\n\uc774 MCP \uc608\uc81c\ub294 PayCaptain.com\uc744 \uc608\ub85c \ub4e4\uc5b4 \uc9c1\uc6d0 \ub370\uc774\ud130\ub97c \uac80\uc0c9\ud558\uace0 \uc5c5\ub370\uc774\ud2b8\ud560 \uc218 \uc788\ub294 MCP \uc11c\ubc84\ub97c \ub9cc\ub4dc\ub294 \ubc29\ubc95\uc744 \ubcf4\uc5ec\uc90d\ub2c8\ub2e4.\n\n### \uc791\ub3d9 \uc6d0\ub9ac\n* MCP \uc11c\ubc84 \ud2b8\ub9ac\uac70\ub97c \uc0ac\uc6a9\ud558\uace0 Search Employee, Get Employee by ID, Update Employee\uc758 3\uac00\uc9c0 \ub9de\ucda4 \uc6cc\ud06c\ud50c\ub85c\uc6b0 \ub3c4\uad6c\uc5d0 \uc5f0\uacb0\ud569\ub2c8\ub2e4.\n* \uac01 \ub3c4\uad6c\ub294 \ud574\ub2f9 \uc791\uc5c5\uc744 \uc218\ud589\ud558\uae30 \uc704\ud574 PayCaptain API\ub97c \ud638\ucd9c\ud569\ub2c8\ub2e4. \ubbfc\uac10\ud55c \ub370\uc774\ud130\ub97c \uc81c\uac70\ud558\uace0 \uacfc\ub3c4\ud55c \uacf5\uc720\ub97c \ubc29\uc9c0\ud558\uae30 \uc704\ud574 \ucd94\uac00\uc801\uc778 \uc8fc\uc758\ub97c \uae30\uc6b8\uc785\ub2c8\ub2e4.\n* Update Employee \ub3c4\uad6c\ub294 \uc77d\uae30 \uc804\uc6a9\uc73c\ub85c \uc720\uc9c0\ub418\ub294 \ud544\ub4dc\ub97c \uc5c5\ub370\uc774\ud2b8\ud558\uc9c0 \uc54a\ub3c4\ub85d \ubcf4\ud638\ud569\ub2c8\ub2e4. MCP \uc11c\ubc84\ub97c \uc81c\uc5b4\ud558\uba74 \ub3c4\uad6c\uc758 \ub3d9\uc791\uc744 \uacb0\uc815\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n* \ub9c8\uc9c0\ub9c9\uc73c\ub85c, \ubaa8\ub4e0 \uc791\uc5c5\uc744 \ub098\uc911\uc5d0 \uac10\uc0ac\ud558\uae30 \uc704\ud574 Google Sheet \ub178\ub4dc\ub97c \uc0ac\uc6a9\ud558\uc5ec \uae30\ub85d\ud569\ub2c8\ub2e4. \uc774\ub294 \uc57d\uac04\uc758 \uc9c0\uc5f0\uc744 \ucd08\ub798\ud560 \uc218 \uc788\uc9c0\ub9cc \ubbfc\uac10\ud55c \ub370\uc774\ud130\uc5d0 \uc811\uadfc\ud560 \uacbd\uc6b0 \uad8c\uc7a5\ub429\ub2c8\ub2e4.\n\n### \uc0ac\uc6a9 \ubc29\ubc95\n* \uc774 MCP \uc11c\ubc84\ub294 \ud638\ud658\ub418\ub294 MCP \ud074\ub77c\uc774\uc5b8\ud2b8\uac00 PayCaptain \uc9c1\uc6d0 \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub97c \uad00\ub9ac\ud560 \uc218 \uc788\uac8c \ud569\ub2c8\ub2e4. \uc0ac\uc6a9\ud558\ub824\uba74 PayCaptain \uacc4\uc815\uacfc \uac1c\ubc1c\uc790 \ud0a4\uac00 \ud544\uc694\ud569\ub2c8\ub2e4.\n* MCP \ud074\ub77c\uc774\uc5b8\ud2b8\ub97c \uc5f0\uacb0\ud558\ub824\uba74 n8n \uc9c0\uce68\uc744 \ub530\ub974\uc138\uc694 - https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-langchain.mcptrigger/#integrating-with-claude-desktop\n* MCP \ud074\ub77c\uc774\uc5b8\ud2b8\uc5d0\uc11c \ub2e4\uc74c \ucffc\ub9ac\ub97c \uc2dc\ub3c4\ud574 \ubcf4\uc138\uc694:\n * \"Sarah\uac00 \ud68c\uc0ac\uc5d0 \uc5b8\uc81c \uc785\uc0ac\ud588\ub098\uc694?\"\n * \"Jack\uc774 \uc218\uc694\uc77c\uc774\ub098 \uae08\uc694\uc77c\uc5d0 \uc77c\ud558\ub098\uc694?\"\n * \"Tracy\uc758 NI \ubc88\ud638\ub97c ABCD123456\uc73c\ub85c \uc5c5\ub370\uc774\ud2b8\ud574 \uc8fc\uc138\uc694\"\n\n### \uc694\uad6c \uc0ac\ud56d\n* PayCaptain \uacc4\uc815\uacfc \uac1c\ubc1c\uc790 \ud0a4.\n* \uc791\uc5c5\uc744 \ub098\uc911\uc5d0 \uac10\uc0ac\ud558\uae30 \uc704\ud574 Google Sheets.\n* MCP \ud074\ub77c\uc774\uc5b8\ud2b8 \ub610\ub294 \uc5d0\uc774\uc804\ud2b8(\uc608: Claude Desktop) - https://claude.ai/download\n\n### \uc774 \uc6cc\ud06c\ud50c\ub85c\uc6b0 \uc0ac\uc6a9\uc790 \uc815\uc758\n* \uc0ac\uc6a9\uc790 \uc0ac\ub840\uc5d0 \ub530\ub77c \ud544\uc694\ud55c \uc9c1\uc6d0 \uc18d\uc131\uc744 \ucd94\uac00\ud558\uac70\ub098 \uc81c\uac70\ud558\uc138\uc694.\n* Google Sheets\uac00 \ub108\ubb34 \ub290\ub9ac\uba74 MCP \uc11c\ubc84 \ud638\ucd9c\uc744 \uae30\ub85d\ud558\uae30 \uc704\ud574 \ub354 \ube60\ub978 \uc11c\ube44\uc2a4\uc758 API \ud638\ucd9c\uc744 \uace0\ub824\ud558\uc138\uc694.\n* \ud504\ub85c\ub355\uc158 \ud658\uacbd\uc5d0 \ubc30\ud3ec\ud558\uac70\ub098 \uc774 MCP \uc11c\ubc84\ub97c \ud0c0\uc778\uacfc \uacf5\uc720\ud558\uae30 \uc804\uc5d0 \uc790\uaca9 \uc99d\uba85 \uc694\uad6c \uc124\uc815\uc744 \uc78a\uc9c0 \ub9c8\uc138\uc694!"
},
"typeVersion": 1
}
],
"connections": {
"Log Call": {
"main": [
[
{
"node": "Operation",
"type": "main",
"index": 0
}
]
]
},
"Operation": {
"main": [
[
{
"node": "Get Employees",
"type": "main",
"index": 0
}
],
[
{
"node": "Get Employees1",
"type": "main",
"index": 0
}
],
[
{
"node": "Valid Fields Only",
"type": "main",
"index": 0
}
]
]
},
"Get Employee": {
"ai_tool": [
[
{
"node": "Paycaptain MCP Server",
"type": "ai_tool",
"index": 0
}
]
]
},
"Get Employees": {
"main": [
[
{
"node": "Filter Matches",
"type": "main",
"index": 0
}
]
]
},
"Filter Matches": {
"main": [
[
{
"node": "Strip Sensitive Fields",
"type": "main",
"index": 0
}
]
]
},
"Get Employees1": {
"main": [
[
{
"node": "Filter Matching ID",
"type": "main",
"index": 0
}
]
]
},
"Update Employee": {
"ai_tool": [
[
{
"node": "Paycaptain MCP Server",
"type": "ai_tool",
"index": 0
}
]
]
},
"Search Employees": {
"ai_tool": [
[
{
"node": "Paycaptain MCP Server",
"type": "ai_tool",
"index": 0
}
]
]
},
"Update Employee1": {
"main": [
[
{
"node": "Get Success Response",
"type": "main",
"index": 0
}
]
]
},
"Valid Fields Only": {
"main": [
[
{
"node": "Has Valid Request?",
"type": "main",
"index": 0
}
]
]
},
"Filter Matching ID": {
"main": [
[
{
"node": "Strip Sensitive Fields1",
"type": "main",
"index": 0
}
]
]
},
"Has Valid Request?": {
"main": [
[
{
"node": "Update Employee1",
"type": "main",
"index": 0
}
],
[
{
"node": "Get Error Response",
"type": "main",
"index": 0
}
]
]
},
"Strip Sensitive Fields": {
"main": [
[
{
"node": "Aggregate Search Results",
"type": "main",
"index": 0
}
]
]
},
"Strip Sensitive Fields1": {
"main": [
[
{
"node": "Aggregate Get Response",
"type": "main",
"index": 0
}
]
]
},
"When Executed by Another Workflow": {
"main": [
[
{
"node": "Log Call",
"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.
googleSheetsOAuth2ApihttpHeaderAuth
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Workflow 3638. Uses executeWorkflowTrigger, mcpTrigger, toolWorkflow, httpRequest. Event-driven trigger; 25 nodes.
Source: https://github.com/n8nKOR/n8n-shared-workflow/blob/62a671327e906c22a40d290b339ff6d2373f8d75/workflows/n8n-workflows-by-Zie619/devops/3638_workflow_3638.json — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
This MCP example uses PayCaptain.com as an example and shows how to create an MCP server which can search for and update employee data. A MCP server trigger is used and connected to 3 custom workflow
This template provides a set of MCP tools to manage personal budgets and expenses. This MCP tools can be integrated to any AI client that support MCP integration. It stores transaction records and bud
simon-apify-youtube-transcript-20250724-v1-ok. Uses httpRequest, lmChatOpenAi, chainLlm, executeWorkflowTrigger. Event-driven trigger; 19 nodes.
Google Maps Email Scraper Template. Uses removeDuplicates, splitInBatches, httpRequest, splitOut. Event-driven trigger; 26 nodes.
ITHome比賽進程. Uses httpRequest, googleSheets, executeWorkflowTrigger, n8n. Event-driven trigger; 25 nodes.