База знань Uspacy
Усі матеріалиАвтоматизаціяВебхуки

Вебхуки. Як це працює?

Вебхуки. Як це працює?

У цій статті ми розкажемо як створювати та підтверджувати нові вебхуки, щоб вони коректно відпрацьовували, відповідно до їх налаштувань

Вебхук – це спеціальний код, за допомогою якого можна відслідкувати зміни на одному ресурсі та передати їх на інший ресурс у реальному часі.

Вебхуки в Uspacy – це спосіб автоматизувати роботу у Просторі. А саме автоматично «сигналізувати» про певні події, які відбуваються в Uspacy, стороннім сервісам. Або навпаки, дозволяють зовнішнім системам відправляти через спеціальну URL-адресу дані в Простір, де потім на їх основі виконати певну дію.

Саме тому в Uspacy можна працювати як з вихідними вебхуками, так і з вхідними.

Уся робота відбувається на однойменній сторінці Простору. Щоб перейти на неї потрібно розгорнути розділ Автоматизація.

🌟Зверніть увагу, що доступ до цього розділу мають тільки власник і адміністратор Простору.

AD_4nXdqrwdi-wyOTMku-GMVwbpZcCObStKzddQR71NpmLzjzLG3Y2oOUKW2lEdb0UpcRHbnrAC4vTgXMmwFrloVK1vRL_Km7OhPPdcSFB84hBQBuIzISeef1UsRXj3GTulCezlQ9HqTow

⚙️ Оскільки ці дії передбачають певних технічних навичок і вмінь, то радимо роботи з налаштування вебхуків проводити саме спеціалістам-розробникам. Або ж ви завжди можете звернутися за допомогою до наших партнерів.

Вихідні

Як створити новий вихідний вебхук?

Щоб зробити це, натисніть на відповідну кнопку.

AD_4nXc3NJUSjfX7PLL8oNQYxcPzQPzq-V_ySiHFF3u4Ed0BAggC4yQ7lAu6wxriZsJG2_WRbi1BIqdUc3ecNkwB0qJ0myYCrgHBJWdh3cddaYKAjPVSPMil75XEueTDiC8Xz2pFmauxlQ

Відкриється вікно, де потрібно бути заповнити всі поля. Вибрати що саме та з яким об’єктом буде відбуватися, щоб на основі цих змін надіслати дані за межі Uspacy стороннім сервісам.

AD_4nXfJ2aNnMXm9wFOE1hq6jSrNrZOkTF6IwpfmiFy1_TzspXn6Tr5CH-NnJaMNsPjQy8eC4kS5ZT_6vLPciXo5-_cTUQaOIFwtCm1hjI1vLhn2ZAmvtkhJg6orEE8xJUZZ2kktEUPjog

Подія – що саме повинно статися. Тобто, вебхук відпрацює, коли буде створено, змінено, видалено об’єкт чи змінено етап для нього.

AD_4nXded7brxip7YvwaoVLlYSTtu-7YpsHoeBih5RDV46c2V4Ix8IP8cPEf4gL5JQ0Zw4JRd2l_TBnbhSpGFPACivWV1t1d-0Zu9OdOQK_EZ5fEN4Dx9DU5Qs3q9muedA1VU-MD-uyeMg

Об’єкт події – те, з чим відбувається взаємодія. Тобто вебхук відпрацює, коли певну сутність, а саме лід, угоду, контакт, компанію, справу, завдання, допис чи коментар буде створено, змінено, видалено чи змінено етап для них.

AD_4nXeObHQ82BqzjYeIaFjPmFntPjLR7p7za6dDm2bNo1uVOtJ59ezOAEDpWkC7IUByzoBAvAClOIJ4iSNURDrzTV4wxuAiY0bXUvPpP_eVNtW_E2FpGtJM_I3lIseIxl8OfRtFcQty

❗️Зверніть увагу, що деякі сутності є несумісними з деякими подіями. Наприклад, не можна створити вебхук, який буде надсилати дані про зміну етапу для контакту, компанії, справи тощо. Оскільки це неможливо, спираючись на функціонал цих сутностей.

AD_4nXePDvmtc-iv_O7mhWNZ-nD5YN8Itwa4Lf1mjITOCkzn7kvc9OblLvbYdoIwZ1O8JaKHitQIlOdeYQnLdWQpoYQ1VoM3xMyJDoYSxNszJhQQmXmf2_P9muhhr6t98mGpbRdOw_xhKQ

Активність – забезпечує роботу вебхука, після його підтвердження.

AD_4nXeGLC_rnuAzZ9AqlrE39RzxYPW_YLjeBuWzznRZPMWVjcgwSSG1Q-4ehC0HVYXUcAEvIWLcudJH5TWGbtXmqysyNbAoZgnKsr4bGy1eKg2mFmita68OqGmpMseoi7OeqTpaWJr96g

Кінцева точка за межами Uspacy – URL-адреса, на яку потрібно надсилати дані. Там розробник розміщує спеціальний код, який буде обробляти вхідні запити (повідомлення).

💡Ця адреса повинна бути дійсною та загальнодоступною. У полі її потрібно обов'язково прописувати з https://. Тобто https://MN.XY, де https:// – протокол, MN.XY – доменне ім'я.

AD_4nXfx0jV5lOv5ZyPPyAPGPelc3qRmuVdBXS-CP3Vve0XxHoqlps3xC6s4MjboU39koH7tCk9laY02_b5XJtC_jUtYugkf-IUkMgiw1jmWBOF8y6QRyoO3rIMYzsneBdodcXeNduZj0Q

Коли всі поля заповнені, натисніть Створити.

AD_4nXdQefSfQPsbN8gjHgT9r8mH2-5Zg4r46eSMP49fhwGtsN9b4vUF4gkrooOkPqiiK8ri4ky2O8-rmzzBFwhiarXbnUwMiAanoOcl9r_sIDZ_SY0iJKaeYWO4r80fjHe16rthsyjBvw

Вебхук одразу буде додано до загального переліку. Спочатку він отримає статус Непідтверджений. Тому, щоб вебхук почав коректно працювати потрібно його підтвердити. ⬇️

Як підтвердити вихідний вебхук?

Після створення вебхуку Uspacy надішле POST-запит на вашу URL-адресу кінцевої точки з підтверджувальним посиланням.

А ваш сервер повинен прийняти цей запит, видобути це посилання та перейти по ньому.

Готово ✅

Після цього вебхук отримає статус Підтверджений і буде працювати.

Корисні посилання та поради

Для підтвердження та обробки вхідних повідомлень можна використовувати готові хендлери Amazon SNS для різних мов та фреймворків.

Приклад повідомлення про подію

{

"topic": "Notifications",

"type": "comment",

"env": "prod",

"data": {

"entity": {

"author_id": 1,

"entity_type": "task",

"entity_id": 786,

"message": "<p class=\"PlaygroundEditorTheme__paragraph\" dir=\"ltr\"><span>test<\/span><\/p>",

"date": 1690963631,

"id": 9087,

"mentioned": {

"users": [],

"departments": [],

"groups": []

},

"notify": {

"users": [

1

],

"groups": [],

"departments": []

}

},

"user_id": 1,

"service": "comments",

"domain": "my.uspacy.ua",

"timestamp": "2023-08-02T08:07:11.256570Z",

"action": "create"

},

"metadata": []

}

Вхідні

Як створити новий вхідний вебхук?

Щоб зробити це, натисніть на відповідну кнопку.

AD_4nXeUj3fZNqplm7-ATRzQ8i9vUvHrkKRQ1mJe1WBbRn_nJgZUU903XqHUsGp_uATrU94hJQ0hWcvuWZsAXzZK5kQkmd39edPEBHajQC1yficx_hWcVOM4WrB_3BHzdk5hdPhwBuFyRg

Відкриється вікно, де потрібно бути заповнити всі поля. А саме:

AD_4nXeAY2Mjkm0rozStpSUtOIR31NN8fOhu6ir1yzgPtansTcVsD3ZgeG2Vx7I-SY4D6fUeII2XnKtDvVwW1DZvEDEkm6OpNyI9LJQoDHg1RoIyhPICQwaB7FVVCyrfmx5rU-RKrPgP

Назва – допомагає ідентифікувати новостворений вебхук серед інших. Може бути довільною і відображати короткий опис того, до буде відбуватися.

AD_4nXcb8r3OEEUznPVCnMIy7N4INKp3lmMYyaU_A5Qbmk8b9rDD6g20wAqgNDOgFbJ_xyE0CIAo1riFVlSjVOdY4pjrPSq4-FjeTGbIf-aFucY6HGN84gKKnohw1j8_5mY0reRzahCZbA

Доступи той інструмент чи інструменти Простору, до яких вебхук матиме доступ. Відповідно Uspacy в межах цих сервісів (CRM, Завдання, Чати, справи тощо) приймає дані та виконує з ними певну дію відповідно до заданої логіки.

AD_4nXeSb_Mv5ygOzPNZZthcg7x00tD2q8NKkMkyF8hnWFeP33LNu0QXEGZDqffyZxGuuhy5bhDn5uX1HIddBdmaFx-Fty4O5MV3R1roQq3VW4HKYlgaKYB4pnZsEePdDvob79fx4MLl

Активність – забезпечує роботу вебхука, одразу після його створення.

AD_4nXeC_ir2AlGG_0L-HUbXqc8ojjEPpTHsIqQ9O3rxnxI2xl7q2WKfE0h8iuO8HlIiV1SQk4h9Rz6RE5HKHw34AWWtddCnZl6kPSlmDb9GaeVzQmaAZbeM3N_J_QJEWmaHYWsak-I2GA

Коли всі поля заповнені, натисніть Створити.

AD_4nXfOsgsy6ayWVE83LkGeFEH9uR5CRDF_foqj8_xDTqiowq594A6fNcedfY8y307xCmMfVONpkGraWK_mcoAl1N0MaGPBDYhLTJskosYoCvv8C06vTqcqDK8yUps0E9Swjetki_Ho

Вебхук одразу буде додано до загального переліку. І він отримає статус Активований та буде готовий для використання.

AD_4nXdWI-4sP7GLbbuYBU6tpI4fdPZUAehQY0MJhmCq_sY2dJXrRAlV52Se2_uUVDcy1Q6nsZqn_2f8yBcjwgA1JyPShW-Y5YZ2gNt9zfr35Y0S0Det4Uef0YmA2xVogP6YYi50CdWUKA

Як використовувати вхідні вебхуки?

Після створення вхідного вебхука та надання йому доступів до потрібних інструментів, з’являється можливість використання Uspacy REST API свого Простору без необхідності авторизації за токеном.

Крім того, як ми вже знаємо, після створення вхідного вебхуку, система автоматично згенерує для нього унікальну адресу.

AD_4nXdodECFULfDYChJlEt8q7JWNrF11pXVpajR0lIobdGrlhR1gANCUXwVX5t4PU_IxWHm_9b7vSqIXXzajZOjS_6uhyvCAQ3I_YJ52gaDdzkuYQZQ_CWh8m5E-xXUv4bj6HdYsaGS

Її й потрібно використовувати для формування API-запиту.

🟣 Наприклад, якщо доступ був наданий до інструменту Завдання.

AD_4nXeix3CERDMoYXl1p-9KlXxSIt04AuvicQUuHj8FzY4efCMqwA-mKxtI-c6aV9xwtGyUaFUsqoayeAT5C1dgqWP1gJq4uUFkcxMaZWhuyruMQl52fgDU9B5xQID3YtLF_NhL0yky3Q

То конкретне завдання можна отримати за адресою:

{webhook_url}/tasks/v1/tasks/{task_id}

Тобто:

{webhook_url} – скопійована з вікна налаштування адреса вебхука;

/tasks/v1/tasks/{task_id} – відносний шлях до кінцевої точки відповідного сервісу (інструменту), до якого має доступ вебхук, знайти можна в документації по API.

AD_4nXegTtSEsaiYDhsu2rMktGZ2eDnBKZ8Od-sTaV9Ppvz2AMkMAbLga9f2QZDVDmCxpcYWTAO2esyY5zgM5lQRsEcpAdrwz3T7Bv8Bk9U1nCppfLkOAowp6lM8WW2BNkDWyKllohfv0A

🔍Опис відповідного методу в API документації.

Приклад API-запиту:

GET

https://yourdomain.uspacy.ua/company/v1/incoming_webhooks/run/gbkn4xrF0b8e4W86jQivcdKCJWvWW7qO/tasks/v1/tasks/816

Відповідь:

{

"id": "816",

"parentId": 250,

"title": "Task",

"setterId": "1",

"createdBy": "1",

"createdDate": 1732623300,

"departmentId": "1",

"groupId": "2",

"closedBy": "",

"responsibleId": "2",

"deadline": 0,

"closedDate": null,

"body": "<p class=\"PlaygroundEditorTheme__paragraph\" dir=\"ltr\"><span style=\"white-space: pre-wrap;\">опис</span></p><p class=\"PlaygroundEditorTheme__paragraph\" dir=\"ltr\"><span style=\"white-space: pre-wrap;\">Description</span></p>",

"status": "notScheduled",

"priority": "veryHigh",

"resultCommentId": "",

"requiredResult": false,

"acceptResult": true,

"timeTracking": true,

"timeEstimate": 0,

"template": false,

"templateId": 294,

"delegation": true,

"basicTask": false,

"taskType": "task",

"accomplicesIds": [

"2",

"3",

"4",

"36",

"37",

"43",

"44",

"45",

"46",

"47"

],

"auditorsIds": [

"2",

"3",

"4",

"36",

"37",

"43",

"44",

"45",

"46",

"47"

],

"kanbanStageId": "",

"elapsedTimes": {

"totalSeconds": 0,

"myTime": 0,

"elapsedTimes": []

},

"crmEntities": {

"deals": [

{

"id": 124,

"title": "Deal"

}

],

"companies": [

{

"id": 39,

"title": "Company"

}

],

"universal_entity": [

{

"id": 2,

"title": "Universal"

}

]

},

"scheduler": {

"taskId": 294,

"active": true,

"nextRun": 1732709700,

"dateStart": "09.10.2024",

"hourStart": 54900,

"dateStop": null,

"timezoneOffset": 3,

"deadlineDay": null,

"deadlineHour": null,

"currentIteration": null,

"iteration": null,

"period": "day",

"every": 1,

"dayOfWeek": null,

"dayOfMonth": null,

"weekOfMonth": null,

"stoppedByForce": 0,

"createdAt": 1728475564,

"updatedAt": 1728475564

}

}

🟣 Якщо ж у налаштуваннях для вхідного вебхука вибраний доступ до CRM.

AD_4nXcCFenvqCErTOTaSKo1FxMHkPQkYP8gYRqGJ7nwwge4zcAIfnTmfOjo5WptuwDj_spTX7m_Yv4rSOMUVFmiG7aros7u2SXlb4LeAU2Lm_YUYuX2YFnR2fqvsWFU0cLQkhEGf6g0

То ви отримаєте можливість взаємодії з усіма CRM сутностями Простору через API.

Наприклад, запит на створення ліда буде виглядати наступним чином:

{webhook_url}/crm/v1/entities/{entity}

Тобто:

{webhook_url} – скопійована з вікна налаштування адреса вебхука;

/crm/v1/entities/{entity} – відносний шлях до кінцевої точки відповідного сервісу (інструменту), до якого має доступ вебхук, знайти можна в документації по API.

AD_4nXdvZboKdyZY202ESrW0lx1OAoNyxAbh2INcTLEnDH2avXX6kGzCYldynmwjp_ngRFLuwVFo0dK45ly26hEk_3ue3UsTcyWo_nLbRN63PnSJd8eKntD6SUXYI0Y6Fw9bwT-Apgw6

🔍Опис відповідного методу в API документації.

Приклад API-запиту:

POST https://yourdomain.uspacy.ua/company/v1/incoming_webhooks/run/gbkn4xrF0b8e4W86jQivcdKCJWvWW7qO/crm/v1/entities/leads

Тіло запиту:

{

"owner": 390,

"title": "Lead",

"comments": "qwerty"

}

Відповідь:

{

"id": 414,

"created_at": 1732627155,

"updated_at": 1732627155,

"title": "Lead",

"owner": 390,

"created_by": 1,

"changed_by": "",

"converted": false,

"contacts": "",

"companies": "",

"first_name": "",

"last_name": "",

"patronymic": "",

"company_name": "",

"position": "",

"utm_source": "",

"utm_medium": "",

"utm_campaign": "",

"utm_content": "",

"utm_term": "",

"messengers": "",

"phone": "",

"email": "",

"comments": "qwerty",

"source": "",

"lead_label": "",

"kanban_status": "IN_WORK",

"kanban_reason_id": "",

"closed_by": "",

"closed_at": "",

"first_closed_by": "",

"first_closed_at": "",

"kanban_stage_id": 1,

"table_name": "leads",

"new_kanban_stage_id": null,

"old_kanban_stage_id": null

}

Варто зазначити, що у випадку з CRM доступ ще й залежить від обсягу прав користувача в Просторі. Тобто ви повинні мати відповідні дозволи, наприклад, для створення лідів. Ну і звісно в налаштуваннях вебхука має бути наданий доступ до потрібного інструменту, тобто до CRM.

Приклад API-запиту, коли в кристувача не має відповідних доступів:

POST

https://yourdomain.uspacy.ua/company/v1/incoming_webhooks/run/gbkn4xrF0b8e4W86jQivcdKCJWvWW7qO/crm/v1/entities/leads

Відповідь:

{

"errors": {

"text": [

"Access is denied!"

]

},

"status": true

}

Створено: 28 липня 2023 р. / Оновлено: 13 травня 2025 р.