@RicardoE105 Has created a better solution.
The code below, grabs the current GravityForms entries that are unread, you can then do something with that data (in this case create a lead in Vtiger) then it updates the entries so that they are read (and thus wonāt be picked up in the following workflow execution) This basically creates a new entries only for GravityForms. Also it does not matter if there are two, three or even four entries, it automatically adds the entries as it should. So you can run the workflow every few hours.
{
"nodes": [
{
"parameters": {},
"name": "Start",
"type": "n8n-nodes-base.start",
"typeVersion": 1,
"position": [
90,
320
]
},
{
"parameters": {
"requestMethod": "POST",
"url": "https://vtigerinstance/webservice.php",
"options": {
"bodyContentType": "form-urlencoded"
},
"bodyParametersUi": {
"parameter": [
{
"name": "accessKey",
"value": "={{$node[\"Function1\"].data[\"accessKey\"]}}"
},
{
"name": "username",
"value": "admin"
},
{
"name": "operation",
"value": "login"
}
]
}
},
"name": "HTTP Request1",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 1,
"position": [
540,
100
]
},
{
"parameters": {
"functionCode": "const crypto = require('crypto')\nlet accessKey = 'accesskey'\nlet token = $node.httprequest1.data.result.token\nlet hash = crypto.createHash('md5').update(`${token}${accessKey}`).digest(\"hex\")\n\nreturn [\n {\n json: {\n accessKey: hash,\n }\n }\n]\n\n\n"
},
"name": "Function1",
"type": "n8n-nodes-base.function",
"typeVersion": 1,
"position": [
310,
100
]
},
{
"parameters": {
"requestMethod": "POST",
"url": "https://crminstance/webservice.php?operation=getchallenge&username=admin",
"options": {}
},
"name": "httprequest1",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 1,
"position": [
100,
100
]
},
{
"parameters": {
"requestMethod": "POST",
"url": "https://crminstance/webservice.php",
"options": {
"bodyContentType": "form-urlencoded"
},
"headerParametersUi": {
"parameter": []
},
"bodyParametersUi": {
"parameter": [
{
"name": "operation",
"value": "create"
},
{
"name": "sessionName",
"value": "={{$node[\"Function\"].data[\"sessionName\"]}}"
},
{
"name": "elementType",
"value": "Leads"
},
{
"name": "=element",
"value": "={\n\"firstname\": \"{{$node[\"Function\"].data[\"firstname\"]}}\",\n\"lastname\": \"{{$node[\"Function\"].data[\"lastname\"]}}\",\n\"assigned_user_id\": \"19x7\",\n\"email\": \"{{$node[\"Function\"].data[\"email\"]}}\",\n\"description\": \"{{$node[\"Function\"].data[\"description\"]}}\"\n\n}"
}
]
},
"queryParametersUi": {
"parameter": []
}
},
"name": "HTTP Request2",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 1,
"position": [
1230,
280
]
},
{
"parameters": {
"requestMethod": "POST",
"url": "https://crminstance/webservice.php",
"options": {},
"headerParametersUi": {
"parameter": []
},
"queryParametersUi": {
"parameter": [
{
"name": "operation",
"value": "logout"
},
{
"name": "sessionName",
"value": "={{$node[\"HTTP Request1\"].data[\"result\"][\"sessionName\"]}}"
}
]
}
},
"name": "HTTP Request",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 1,
"position": [
1920,
430
]
},
{
"parameters": {
"authentication": "basicAuth",
"url": "https://wordpressinstance/wp-json/gf/v2/entries?search={%22field_filters%22:%20[{%22key%22:%22is_read%22,%22value%22:%220%22},{%22key%22:%20%22form_id%22,%22value%22:%223%22}]}",
"options": {}
},
"name": "gravityforms",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 1,
"position": [
290,
310
],
"credentials": {
"httpBasicAuth": "basic"
}
},
{
"parameters": {
"functionCode": "const forms = items[0].json.entries\nconst response = []\nfor (const form of forms) {\n response.push({\n json: {\n firstname: form['1.3'],\n lastname: form['1.6'],\n email: form['6'],\n description: form['5'],\n id: form['id'],\n customer: form['9']\n }\n })\n}\nreturn response"
},
"name": "output",
"type": "n8n-nodes-base.function",
"typeVersion": 1,
"position": [
480,
310
]
},
{
"parameters": {
"authentication": "basicAuth",
"requestMethod": "PUT",
"url": "=https://wordpressinstance/wp-json/gf/v2/entries/{{$node[\"Function\"].data[\"id\"]}}",
"options": {},
"bodyParametersUi": {
"parameter": [
{
"name": "is_read",
"value": "1"
},
{
"name": "5",
"value": "={{$node[\"Function\"].data[\"description\"]}}"
},
{
"name": "6",
"value": "={{$node[\"Function\"].data[\"email\"]}}"
},
{
"name": "=1.3",
"value": "={{$node[\"Function\"].data[\"firstname\"]}}"
},
{
"name": "1.6",
"value": "={{$node[\"Function\"].data[\"lastname\"]}}"
}
]
}
},
"name": "gravityforms1",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 1,
"position": [
1420,
280
],
"credentials": {
"httpBasicAuth": "basic"
},
"disabled": true
},
{
"parameters": {
"mode": "passThrough",
"output": "input2"
},
"name": "Merge",
"type": "n8n-nodes-base.merge",
"typeVersion": 1,
"position": [
820,
280
]
},
{
"parameters": {
"functionCode": "const response = []\nfor (const item of items) {\n item.json.description = item.json.description.replace(/\\n/g, \"\")\n item.json.description = item.json.description.replace(/\\r/g, \"\")\n response.push({\n json: {\n ...item.json,\n sessionName: $node[\"HTTP Request1\"].data.result.sessionName\n }\n })\n}\nreturn response\n"
},
"name": "Function",
"type": "n8n-nodes-base.function",
"typeVersion": 1,
"position": [
1030,
280
]
},
{
"parameters": {},
"name": "Function2",
"type": "n8n-nodes-base.function",
"typeVersion": 1,
"position": [
1580,
280
]
},
{
"parameters": {
"mode": "wait"
},
"name": "Merge1",
"type": "n8n-nodes-base.merge",
"typeVersion": 1,
"position": [
1750,
430
]
},
{
"parameters": {},
"name": "NoOp",
"type": "n8n-nodes-base.noOp",
"typeVersion": 1,
"position": [
1540,
450
]
},
{
"parameters": {},
"name": "Start",
"type": "n8n-nodes-base.start",
"typeVersion": 1,
"position": [
90,
320
]
},
{
"parameters": {
"requestMethod": "POST",
"url": "https://crminstance/webservice.php",
"options": {
"bodyContentType": "form-urlencoded"
},
"bodyParametersUi": {
"parameter": [
{
"name": "accessKey",
"value": "={{$node[\"Function1\"].data[\"accessKey\"]}}"
},
{
"name": "username",
"value": "admin"
},
{
"name": "operation",
"value": "login"
}
]
}
},
"name": "HTTP Request1",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 1,
"position": [
540,
100
]
},
{
"parameters": {
"functionCode": "const crypto = require('crypto')\nlet accessKey = 'accesskey'\nlet token = $node.httprequest1.data.result.token\nlet hash = crypto.createHash('md5').update(`${token}${accessKey}`).digest(\"hex\")\n\nreturn [\n {\n json: {\n accessKey: hash,\n }\n }\n]\n\n\n"
},
"name": "Function1",
"type": "n8n-nodes-base.function",
"typeVersion": 1,
"position": [
310,
100
]
},
{
"parameters": {
"requestMethod": "POST",
"url": "https://crminstancel/webservice.php?operation=getchallenge&username=admin",
"options": {}
},
"name": "httprequest1",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 1,
"position": [
100,
100
]
},
{
"parameters": {
"requestMethod": "POST",
"url": "https://crminstance/webservice.php",
"options": {
"bodyContentType": "form-urlencoded"
},
"headerParametersUi": {
"parameter": []
},
"bodyParametersUi": {
"parameter": [
{
"name": "operation",
"value": "create"
},
{
"name": "sessionName",
"value": "={{$node[\"Function\"].data[\"sessionName\"]}}"
},
{
"name": "elementType",
"value": "Leads"
},
{
"name": "=element",
"value": "={\n\"firstname\": \"{{$node[\"Function\"].data[\"firstname\"]}}\",\n\"lastname\": \"{{$node[\"Function\"].data[\"lastname\"]}}\",\n\"assigned_user_id\": \"19x7\",\n\"email\": \"{{$node[\"Function\"].data[\"email\"]}}\",\n\"description\": \"{{$node[\"Function\"].data[\"description\"]}}\"\n\n}"
}
]
},
"queryParametersUi": {
"parameter": []
}
},
"name": "HTTP Request2",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 1,
"position": [
1230,
280
]
},
{
"parameters": {
"requestMethod": "POST",
"url": "https://crminstance/webservice.php",
"options": {},
"headerParametersUi": {
"parameter": []
},
"queryParametersUi": {
"parameter": [
{
"name": "operation",
"value": "logout"
},
{
"name": "sessionName",
"value": "={{$node[\"HTTP Request1\"].data[\"result\"][\"sessionName\"]}}"
}
]
}
},
"name": "HTTP Request",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 1,
"position": [
1920,
430
]
},
{
"parameters": {
"authentication": "basicAuth",
"url": "https://wordpressinstance/wp-json/gf/v2/entries?search={%22field_filters%22:%20[{%22key%22:%22is_read%22,%22value%22:%220%22},{%22key%22:%20%22form_id%22,%22value%22:%223%22}]}",
"options": {}
},
"name": "gravityforms",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 1,
"position": [
290,
310
],
"credentials": {
"httpBasicAuth": "basic"
}
},
{
"parameters": {
"functionCode": "const forms = items[0].json.entries\nconst response = []\nfor (const form of forms) {\n response.push({\n json: {\n firstname: form['1.3'],\n lastname: form['1.6'],\n email: form['6'],\n description: form['5'],\n id: form['id'],\n customer: form['9']\n }\n })\n}\nreturn response"
},
"name": "output",
"type": "n8n-nodes-base.function",
"typeVersion": 1,
"position": [
480,
310
]
},
{
"parameters": {
"authentication": "basicAuth",
"requestMethod": "PUT",
"url": "=https://wordpressinstance/wp-json/gf/v2/entries/{{$node[\"Function\"].data[\"id\"]}}",
"options": {},
"bodyParametersUi": {
"parameter": [
{
"name": "is_read",
"value": "1"
},
{
"name": "5",
"value": "={{$node[\"Function\"].data[\"description\"]}}"
},
{
"name": "6",
"value": "={{$node[\"Function\"].data[\"email\"]}}"
},
{
"name": "=1.3",
"value": "={{$node[\"Function\"].data[\"firstname\"]}}"
},
{
"name": "1.6",
"value": "={{$node[\"Function\"].data[\"lastname\"]}}"
}
]
}
},
"name": "gravityforms1",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 1,
"position": [
1420,
280
],
"credentials": {
"httpBasicAuth": "basic"
},
"disabled": true
},
{
"parameters": {
"mode": "passThrough",
"output": "input2"
},
"name": "Merge",
"type": "n8n-nodes-base.merge",
"typeVersion": 1,
"position": [
820,
280
]
},
{
"parameters": {
"functionCode": "const response = []\nfor (const item of items) {\n item.json.description = item.json.description.replace(/\\n/g, \"\")\n item.json.description = item.json.description.replace(/\\r/g, \"\")\n response.push({\n json: {\n ...item.json,\n sessionName: $node[\"HTTP Request1\"].data.result.sessionName\n }\n })\n}\nreturn response\n"
},
"name": "Function",
"type": "n8n-nodes-base.function",
"typeVersion": 1,
"position": [
1030,
280
]
},
{
"parameters": {},
"name": "Function2",
"type": "n8n-nodes-base.function",
"typeVersion": 1,
"position": [
1580,
280
]
},
{
"parameters": {
"mode": "wait"
},
"name": "Merge1",
"type": "n8n-nodes-base.merge",
"typeVersion": 1,
"position": [
1750,
430
]
},
{
"parameters": {},
"name": "NoOp",
"type": "n8n-nodes-base.noOp",
"typeVersion": 1,
"position": [
1540,
450
]
}
],
"connections": {
"Start": {
"main": [
[
{
"node": "gravityforms",
"type": "main",
"index": 0
}
]
]
},
"HTTP Request1": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 0
}
]
]
},
"Function1": {
"main": [
[
{
"node": "HTTP Request1",
"type": "main",
"index": 0
}
]
]
},
"httprequest1": {
"main": [
[
{
"node": "Function1",
"type": "main",
"index": 0
}
]
]
},
"HTTP Request2": {
"main": [
[
{
"node": "gravityforms1",
"type": "main",
"index": 0
}
]
]
},
"gravityforms": {
"main": [
[
{
"node": "output",
"type": "main",
"index": 0
}
]
]
},
"output": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 1
}
]
]
},
"gravityforms1": {
"main": [
[
{
"node": "Function2",
"type": "main",
"index": 0
}
]
]
},
"Merge": {
"main": [
[
{
"node": "Function",
"type": "main",
"index": 0
}
]
]
},
"Function": {
"main": [
[
{
"node": "HTTP Request2",
"type": "main",
"index": 0
}
]
]
},
"Function2": {
"main": [
[
{
"node": "Merge1",
"type": "main",
"index": 0
}
]
]
},
"Merge1": {
"main": [
[
{
"node": "HTTP Request",
"type": "main",
"index": 0
}
]
]
},
"NoOp": {
"main": [
[
{
"node": "Merge1",
"type": "main",
"index": 1
}
]
]
}
}
}