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

Manual GoogleDrive Automate Triggered
View
Functionitem Itemlists Automate
View
LangChain - Example - Workflow Retriever
View
Splitout Filter Create Webhook
View
Perform an email search with Icypeas (single)
View
Calendly Filter Create Triggered
View
Humanticai Calendly Automate Triggered
View
modelo do chatbot
View
Line Chatbot Handling AI Responses with Groq and Llama3
View
HTTP Telegram Create Webhook
View