Workflow: Code Respondtowebhook Automation

Workflow Details

Download Workflow
{
    "id": "g3q68zSOQvTcydLs",
    "meta": {
        "instanceId": "92786e96ce436aecd3a1d62d818a74e51ca684bb36c805928bef93a3b46549ad"
    },
    "name": "Calculate the Centroid of a Set of Vectors",
    "tags": [],
    "nodes": [
        {
            "id": "32a8aa56-aa7e-4c9e-a39e-f65234224bcf",
            "name": "Receive Vectors",
            "type": "n8n-nodes-base.webhook",
            "position": [
                -440,
                20
            ],
            "webhookId": "30091e91-fc67-4bab-b1fd-ed65c8f4f860",
            "parameters": {
                "path": "centroid",
                "options": [],
                "responseMode": "responseNode"
            },
            "notesInFlow": true,
            "typeVersion": 2
        },
        {
            "id": "a020a49a-cc9f-49af-aa95-829d9d16da04",
            "name": "Extract & Parse Vectors",
            "type": "n8n-nodes-base.set",
            "position": [
                360,
                20
            ],
            "parameters": {
                "options": [],
                "assignments": {
                    "assignments": [
                        {
                            "id": "3e1d9e72-7668-427d-958c-42bff7270a37",
                            "name": "vectors",
                            "type": "array",
                            "value": "={{ $json.query.vectors }}"
                        }
                    ]
                }
            },
            "typeVersion": 3.399999999999999911182158029987476766109466552734375
        },
        {
            "id": "2f328de6-4ef1-4aac-8838-d616637f4b88",
            "name": "Validate & Compute Centroid",
            "type": "n8n-nodes-base.code",
            "position": [
                960,
                20
            ],
            "parameters": {
                "jsCode": "const input = items[0].json;\nconst vectors = input.vectors;\n\nif (!Array.isArray(vectors) || vectors.length === 0) {\n  return [{ json: { error: \"Invalid input: Expected an array of vectors.\" } }];\n}\n\nconst dimension = vectors[0].length;\nif (!vectors.every(v => v.length === dimension)) {\n  return [{ json: { error: \"Vectors have inconsistent dimensions.\" } }];\n}\n\nconst centroid = new Array(dimension).fill(0);\nvectors.forEach(vector => {\n  vector.forEach((val, index) => {\n    centroid[index] += val;\n  });\n});\n\nfor (let i = 0; i < dimension; i++) {\n  centroid[i] \/= vectors.length;\n}\n\nreturn [{ json: { centroid } }];"
            },
            "typeVersion": 2
        },
        {
            "id": "821bc173-3578-4cf2-9fd7-8ea9cba8dc3f",
            "name": "Return Centroid Response",
            "type": "n8n-nodes-base.respondToWebhook",
            "position": [
                1640,
                20
            ],
            "parameters": {
                "options": []
            },
            "typeVersion": 1.100000000000000088817841970012523233890533447265625
        },
        {
            "id": "73964e7b-1217-422f-8078-09604fa2a3d7",
            "name": "Sticky Note",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                20,
                -200
            ],
            "parameters": {
                "color": 3,
                "width": 620,
                "height": 420,
                "content": "\ud83d\udccc **Description:**  \nThis node extracts the `vectors` array from the **GET request** and converts it into a properly formatted array for processing.  \n- **Ensures `vectors` is a valid array.**  \n- **If the parameter is missing, it may generate an error.**  \n\n\ud83d\udd39 **Expected Output Example:**\n```json\n{\n  \"vectors\": [[2,3,4],[4,5,6],[6,7,8]]\n}\n```\n"
            },
            "typeVersion": 1
        },
        {
            "id": "e4793b20-bfa6-4b08-b46c-f92d1c9c2622",
            "name": "Sticky Note1",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                640,
                -280
            ],
            "parameters": {
                "color": 4,
                "width": 700,
                "height": 500,
                "content": "\ud83d\udccc **Description:**  \nThis node performs **vector validation** and **centroid computation**.  \n- **Validation:** Ensures all vectors have the same number of dimensions.  \n- **Computation:** Averages each dimension to determine the centroid.  \n- **If validation fails:** Returns an error message indicating inconsistent dimensions.  \n\n\ud83d\udd39 **Successful Output Example:**\n```json\n{\n  \"centroid\": [4,5,6]\n}\n```\n\ud83d\udd39 **Error Output Example:**\n```json\n{\n  \"error\": \"Vectors have inconsistent dimensions.\"\n}\n```\n"
            },
            "typeVersion": 1
        },
        {
            "id": "e0ac1c4d-0435-44d1-ba87-0cfc9dea207b",
            "name": "Sticky Note2",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                1340,
                -200
            ],
            "parameters": {
                "color": 2,
                "width": 680,
                "height": 420,
                "content": "\ud83d\udccc **Description:**  \nThis node sends the **final response** back to the client that made the request.  \n- **If the computation is successful**, it returns the centroid.  \n- **If an error occurs**, it returns a descriptive error message.  \n\n\ud83d\udd39 **Example Response:**\n```json\n{\n  \"centroid\": [4, 5, 6]\n}\n```\n"
            },
            "typeVersion": 1
        },
        {
            "id": "2b4fbae7-c2e5-4666-ba9f-72a5313fc16f",
            "name": "Sticky Note4",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                -820,
                -200
            ],
            "parameters": {
                "color": 4,
                "width": 840,
                "height": 420,
                "content": "\ud83d\udccc **Description:**  \nThis node acts as the **entry point** for the workflow, receiving a **GET request** containing an array of vectors in the `vectors` parameter.  \n- **Expected Input:** `vectors` parameter in JSON format.  \n- **Example Request:**  \n  ```plaintext\n  https:\/\/actions.singular-innovation.com\/webhook-test\/centroid?vectors=[[2,3,4],[4,5,6],[6,7,8]]\n  ```\n- **Output:** Passes the received data to the next node for processing.\n"
            },
            "typeVersion": 1
        }
    ],
    "active": true,
    "pinData": {
        "Receive Vectors": [
            {
                "json": {
                    "body": [],
                    "query": {
                        "vectors": "[[2,3,4],[4,5,6],[6,7,8]]"
                    },
                    "params": [],
                    "headers": {
                        "host": "actions.singular-innovation.com",
                        "accept": "text\/html,application\/xhtml+xml,application\/xml;q=0.9,image\/avif,image\/webp,image\/apng,*\/*;q=0.8,application\/signed-exchange;v=b3;q=0.7",
                        "cookie": "rl_page_init_referrer=RudderEncrypt%3AU2FsdGVkX1%2FNTT5WOkcYG%2FWSKmLWL%2F6W9TAbYFEQv8s%3D; rl_page_init_referring_domain=RudderEncrypt%3AU2FsdGVkX19thqA5y56KyQdmUG3L%2BhCiYIxQok7WXRI%3D; n8n-auth=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImZjOTg1OTJjLTcwOWUtNGI5Mi1hODk0LWZiNjVlODY1ZmRlMiIsImhhc2giOiJhOFg4MW1zcU1zIiwiaWF0IjoxNzM3OTg1MzI5LCJleHAiOjE3Mzg1OTAxMjl9.GSjpKJ_cG5CqttWwhEeHOxWwlNByvLTu8CGH7ncVug8; rl_anonymous_id=RudderEncrypt%3AU2FsdGVkX1%2BickXpx2WwsiLS3K45TJoms2IgVIMIQRvQnuaNzfjLtzG9mEXObNu4ojurRNkdq0msPjPy10UDEQ%3D%3D; rl_user_id=RudderEncrypt%3AU2FsdGVkX1%2BbvZ%2F6U02zoG3zOFSyRAIzp7gVabGBqqkm7MUCy3Wkn5WOQd%2F%2Bk5e8gVlJ%2BUkJOYJnhS%2F%2Btc7D99%2FTIaFVympE%2BjrtY7ydRWcd69oJHwZWGK%2BeCP1cKh9fqq%2B3sFCVYv7pnm4xMkAAwAM%2BDuzhFTZ0ZFWEA9t8z9M%3D; rl_trait=RudderEncrypt%3AU2FsdGVkX19s%2BCzIY1zJrLksYKMyyTZBHFB0YpKHQWouDTpomPoyyHa9MtTtEUArCVmtBaEf%2FqNhQKJrC8I4hX%2FepCmsx8TqQ6Rzxij0%2FBPvvdq6JWijlttfLovsIF%2BjDLnmVfeRsPbdVgrJXo0neA%3D%3D; ph_phc_4URIAm1uYfJO7j8kWSe0J8lc8IqnstRLS7Jx8NcakHo_posthog=%7B%22distinct_id%22%3A%2292786e96ce436aecd3a1d62d818a74e51ca684bb36c805928bef93a3b46549ad%23fc98592c-709e-4b92-a894-fb65e865fde2%22%2C%22%24sesid%22%3A%5B1738160096669%2C%220194b262-b90a-74cf-ab0d-257b174571c7%22%2C1738159601930%5D%2C%22%24epp%22%3Atrue%2C%22%24initial_person_info%22%3A%7B%22r%22%3A%22%24direct%22%2C%22u%22%3A%22https%3A%2F%2Factions.singular-innovation.com%2Fsignin%3Fredirect%3D%25252F%22%7D%7D; rl_session=RudderEncrypt%3AU2FsdGVkX19G2WmuxH5ZaEfkSkfe4e2i5iyzrvY4U6jPHxAnaSaY8YaPPAFRADU%2FgEyIFzVE0cEXdOZLTBcsa%2Byoiz3Wng4SqZeqnZu2pr1a%2FT0A6mSwTn%2Bw1Ki5ozJpDTVNg6%2BWfaNDa1LGpWRzCQ%3D%3D",
                        "sec-ch-ua": "\"Google Chrome\";v=\"131\", \"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"",
                        "x-real-ip": "177.232.86.200",
                        "connection": "close",
                        "user-agent": "Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/131.0.0.0 Safari\/537.36",
                        "cache-control": "max-age=0",
                        "sec-fetch-dest": "document",
                        "sec-fetch-mode": "navigate",
                        "sec-fetch-site": "none",
                        "sec-fetch-user": "?1",
                        "accept-encoding": "gzip, deflate, br, zstd",
                        "accept-language": "es-419,es;q=0.9",
                        "x-forwarded-for": "177.232.86.200",
                        "sec-ch-ua-mobile": "?0",
                        "x-forwarded-proto": "https",
                        "sec-ch-ua-platform": "\"Windows\"",
                        "upgrade-insecure-requests": "1"
                    },
                    "webhookUrl": "https:\/\/actions.singular-innovation.com\/webhook-test\/centroid",
                    "executionMode": "test"
                }
            }
        ]
    },
    "settings": {
        "executionOrder": "v1"
    },
    "versionId": "f9c7fa52-264b-4967-ae7a-62247cce7a50",
    "connections": {
        "Receive Vectors": {
            "main": [
                [
                    {
                        "node": "Extract & Parse Vectors",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Extract & Parse Vectors": {
            "main": [
                [
                    {
                        "node": "Validate & Compute Centroid",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Validate & Compute Centroid": {
            "main": [
                [
                    {
                        "node": "Return Centroid Response",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        }
    }
}
Back to Workflows

Related Workflows

Retry on fail except for known error Template
View
Stickynote Send Triggered
View
Send an SMS using MSG91
View
HTTP Executeworkflow Automation Webhook
View
Add a event to Calender
View
Entra Contacts to Zammad User Sync
View
Code Schedule Import Webhook
View
Respondtowebhook Stickynote Create Webhook
View
Wait Datetime Send Scheduled
View
Telegram Gmail Create Triggered
View