Workflow: Code Webhook Create

Workflow Details

Download Workflow
{
    "meta": {
        "instanceId": "237600ca44303ce91fa31ee72babcdc8493f55ee2c0e8aa2b78b3b4ce6f70bd9"
    },
    "nodes": [
        {
            "id": "b220e0c7-3c34-4221-8fee-11c133a5345b",
            "name": "Get ticket",
            "type": "n8n-nodes-base.zendesk",
            "position": [
                740,
                540
            ],
            "parameters": {
                "id": "={{$node[\"On new Zendesk ticket\"].json[\"body\"][\"id\"]}}",
                "operation": "get"
            },
            "credentials": {
                "zendeskApi": {
                    "id": "24",
                    "name": "[UPDATE ME]"
                }
            },
            "typeVersion": 1
        },
        {
            "id": "e58834a7-1a94-429f-a50c-2e27293c32a0",
            "name": "IF",
            "type": "n8n-nodes-base.if",
            "position": [
                1140,
                540
            ],
            "parameters": {
                "conditions": {
                    "string": [
                        {
                            "value1": "={{$node[\"Determine\"].json[\"Slack Thread ID\"]}}",
                            "operation": "isNotEmpty"
                        }
                    ]
                }
            },
            "typeVersion": 1
        },
        {
            "id": "c6f82ab9-54f4-4f91-a4d9-018739c6519d",
            "name": "Update ticket",
            "type": "n8n-nodes-base.zendesk",
            "notes": "Update the Zendesk ticket by adding the Jira issue key to the \"Jira Issue Key\" field.",
            "position": [
                1540,
                640
            ],
            "parameters": {
                "id": "={{$node[\"On new Zendesk ticket\"].json[\"body\"][\"id\"]}}",
                "operation": "update",
                "updateFields": {
                    "customFieldsUi": {
                        "customFieldsValues": [
                            {
                                "id": 7022397804317,
                                "value": "={{$node[\"Create thread\"].json[\"ts\"]}}"
                            }
                        ]
                    }
                }
            },
            "credentials": {
                "zendeskApi": {
                    "id": "24",
                    "name": "[UPDATE ME]"
                }
            },
            "notesInFlow": true,
            "typeVersion": 1
        },
        {
            "id": "74d93ba5-d82d-4cc4-a177-bd86dbc18534",
            "name": "On new Zendesk ticket",
            "type": "n8n-nodes-base.webhook",
            "position": [
                540,
                540
            ],
            "webhookId": "b7845b15-0a44-4be5-b513-f4f4bb8989a6",
            "parameters": {
                "path": "b7845b15-0a44-4be5-b513-f4f4bb8989a6",
                "options": [],
                "httpMethod": "POST"
            },
            "typeVersion": 1
        },
        {
            "id": "65d387cd-5c7a-4567-9a3c-9fa033f98ac9",
            "name": "Create thread",
            "type": "n8n-nodes-base.slack",
            "position": [
                1340,
                640
            ],
            "parameters": {
                "text": "={{$node[\"Get ticket\"].json[\"subject\"]}}",
                "channel": "={{$node[\"Configure\"].parameter[\"values\"][\"string\"][0][\"value\"]}}",
                "attachments": [],
                "otherOptions": [],
                "authentication": "oAuth2"
            },
            "credentials": {
                "slackOAuth2Api": {
                    "id": "28",
                    "name": "[UPDATE ME]"
                }
            },
            "typeVersion": 1
        },
        {
            "id": "50f5aa84-70bc-4b08-a9cc-576fbed72636",
            "name": "Create reply on existing thread",
            "type": "n8n-nodes-base.slack",
            "position": [
                1340,
                440
            ],
            "parameters": {
                "text": "={{$node[\"On new Zendesk ticket\"].json[\"body\"][\"comment\"]}}",
                "channel": "={{$node[\"Configure\"].parameter[\"values\"][\"string\"][0][\"value\"]}}",
                "attachments": [],
                "otherOptions": {
                    "thread_ts": "={{$node[\"Determine\"].json[\"Slack Thread ID\"]}}"
                },
                "authentication": "oAuth2"
            },
            "credentials": {
                "slackOAuth2Api": {
                    "id": "28",
                    "name": "[UPDATE ME]"
                }
            },
            "typeVersion": 1
        },
        {
            "id": "6d5e8df0-4b0b-487c-81be-93359976dd90",
            "name": "Configure",
            "type": "n8n-nodes-base.set",
            "position": [
                540,
                360
            ],
            "parameters": {
                "values": {
                    "string": [
                        {
                            "name": "Slack channel",
                            "value": "#zendesk-updates"
                        }
                    ]
                },
                "options": {
                    "dotNotation": false
                }
            },
            "typeVersion": 1
        },
        {
            "id": "934b95bb-2ffa-40a4-a2ca-02cfd646dd78",
            "name": "Note",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                -20,
                360
            ],
            "parameters": {
                "width": 469.481367697419727846863679587841033935546875,
                "height": 268.2900466166275919022154994308948516845703125,
                "content": "## Sync Zendesk tickets to Slack threads\n### Setup\n1. Add your [Zendesk credential](https:\/\/docs.n8n.io\/integrations\/builtin\/credentials\/zendesk\/) to the `Get ticket` and `Update ticket` nodes.\n2. Add your [Slack credential](https:\/\/docs.n8n.io\/integrations\/builtin\/credentials\/slack\/) to `Create Thread` and `Create reply on existing thread` nodes.\n3. Open `Configure` node and change \"Slack channel\" value to your slack channel (like #zendesk-updates).\n4. Activate the workflow so it runs automatically each time a Zendesk ticket is created."
            },
            "typeVersion": 1
        },
        {
            "id": "b582f7ff-7cc6-48dc-89fc-bc8bde13b06e",
            "name": "Code",
            "type": "n8n-nodes-base.code",
            "notes": "if thread was created already in Slack",
            "position": [
                940,
                540
            ],
            "parameters": {
                "jsCode": "\/* configure here =========================================================== *\/\n\/*  Zendesk field ID which represents the \"Slack Thread ID\" field.\n*\/\nconst ISSUE_KEY_FIELD_ID = 7022397804317;\n\n\/* ========================================================================== *\/\nnew_items = [];\n\nfor (item of $items(\"Get ticket\")) {\n    \n    \/\/ instantiate a new variable for status\n    var custom_fields = item.json[\"custom_fields\"];\n    var slack_thread_id = \"\";\n    for (var i = 0; i < custom_fields.length; i++) {\n        if (custom_fields[i].id == ISSUE_KEY_FIELD_ID) {\n            slack_thread_id = custom_fields[i].value;\n            break;\n        }\n    }\n\n    \/\/ push the new item to the new_items array\n    new_items.push({\n        \"Slack Thread ID\": slack_thread_id\n    });\n}\n\nreturn new_items;"
            },
            "notesInFlow": true,
            "typeVersion": 1
        }
    ],
    "connections": {
        "IF": {
            "main": [
                [
                    {
                        "node": "Create reply on existing thread",
                        "type": "main",
                        "index": 0
                    }
                ],
                [
                    {
                        "node": "Create thread",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Code": {
            "main": [
                [
                    {
                        "node": "IF",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Get ticket": {
            "main": [
                [
                    {
                        "node": "Code",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Create thread": {
            "main": [
                [
                    {
                        "node": "Update ticket",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "On new Zendesk ticket": {
            "main": [
                [
                    {
                        "node": "Get ticket",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        }
    }
}
Back to Workflows

Related Workflows

Get details of a forum in Disqus
View
Bubble Data Access
View
Filter HTTP Update Webhook
View
Code Schedule Import Scheduled
View
Functionitem Manual Create Triggered
View
Post New YouTube Videos to X
View
Manual Stickynote Automation Webhook
View
Smart Factory Use Case
View
Summarize emails with A.I. then send to messenger
View
Mattermost Webhook Automate Webhook
View