Перейти к основному содержимому
Опубликовано: 

Okdesk и Sendsay

Okdesk — автоматизированная система поддержки клиентов на основе учёта заявок. Интеграция позволяет автоматически передавать контакты и другие данные о клиентах из заполненных заявок в Sendsay — без ручной загрузки файлов.

Чтобы импортировать данные в профиль клиента Sendsay, необходимо создать специальную webhook-ссылку, которая позволит сопоставить данные из JSON-файла с нужными полями анкет.

Рассмотрим настройку передачи данных на примере 4 полей — email, имени, фамилии и отчества. Следуя инструкции, вы поймёте, как передавать собственные кастомные поля:

  1. Авторизуйтесь в личном кабинете Okdesk и перейдите в раздел Настройки → Заявки → Атрибуты заявок.

  2. Нажмите «Добавить» и в окне редактирования атрибута задайте:

    • Кодemail,
    • НазваниеEmail подписчика в Sendsay. Это название будет отображаться в карточке создания запроса.

    New attribute

    Заполните остальные настройки и нажмите «Создать». Если у вас уже есть созданные поля в этом разделе, перетащите поле email на первое место сверху.

    Важно

    Если вы идёте чётко по инструкции и хотите передавать эти 4 поля, следует использовать именно такой порядок полей в начале формы — так система корректно сопоставит поля между Okdesk и Sendsay.

    Form

    О том, как передавать другие поля или в другом порядке, читайте здесь.

  3. Перейдите в Настройки → Вебхуки и нажмите «Добавить».

  4. В открывшемся окне редактирования укажите название. В поле Триггерные события выберите Создание заявки, при срабатывании которого данные из Okdesk будут передаваться в Sendsay.

  5. В поле Вызываемый URL укажите ссылку:

    https://be.sendsay.ru/backend/api/<API-ключ>/member.set/email/-/member.email,set.copy,issue.parameters[0].value/base.firstName,set.copy,issue.client.contact.first_name/base.lastName,set.copy,issue.client.contact.last_name/base.middleName,set.copy,issue.client.contact.patronymic

    где <API-ключ> — ваш API-ключ, полученный в Sendsay.

    Как получить API-ключ

    Webhook

    Нажмите «Обновить».

  6. Включите событие в разделе Триггерные события:

Form

На этом базовая настройка интеграции завершена. После создания новой заявки в Sendsay появится новый подписчик с указанными данными.

Если нужно передавать другие стандартные поля

При необходимости вы можете передавать в Sendsay другие стандартные поля Okdesk. Для этого нужно дополнить ссылку интеграции командой вида /<КОД ПОЛЯ В SENDSAY>,set.copy,<КОД ПОЛЯ В OKDESK>/ для каждого поля.

Полная структура JSON-файла, которую присылает Okdesk в теле вебхука при срабатывании события Создание заявки:

{
"event": {
"event_type": "new_ticket",
"source": "from_employee"
},
"issue": {
"title": "Тема заявки",
"planned_execution_in_hours": null,
"id": 10,
"parent_id": null,
"child_ids": [],
"description": "Тестовый текст",
"type": {
"code": "service",
"name": "Обслуживание",
"inner": false
},
"priority": {
"code": "low",
"name": "Низкий"
},
"status": {
"code": "opened",
"name": "Открыта"
},
"rate": null,
"old_status": null,
"client": {
"company": {
"name": "ООО Космический Туризм",
"id": 2
},
"contact": {
"first_name": "Дмитрий",
"last_name": "Локтионов",
"patronymic": "Валерьевич",
"id": 2
}
},
"agreement": {
"title": "Обслуживание космодрома",
"id": 3
},
"maintenance_entity": {
"name": "Космодром Центральный",
"timezone": null,
"id": 3,
"address": {
"string_value": "Красноярский край, пос. Млечный Путь",
"coordinates": [
58.358658,
90.030769
]
},
"schedule": null
},
"equipments": [],
"author": {
"first_name": "Николай",
"last_name": "Петров",
"patronymic": null,
"id": 1,
"type": "employee"
},
"assignee": {
"group": null,
"employee": null
},
"coexecutors": [],
"observers": {
"employees": [],
"contacts": [],
"groups": []
},
"created_at": "2025-06-26T12:51:43.949+02:00",
"deadline_at": "2025-07-02T16:51:00.000+02:00",
"planned_reaction_at": "2025-06-26T14:51:00.000+02:00",
"start_execution_until": null,
"completed_at": null,
"reacted_at": null,
"parameters": [
{
"code": "email",
"name": "Email",
"type": "ftstring",
"value": "example@mail.ru"
},
{
"code": "custom1",
"name": "Поле 1",
"type": "ftstring",
"value": "Значение поля 1"
},
{
"code": "custom2",
"name": "Поле 2",
"type": "ftstring",
"value": "Значение поля 2"
}
],
"attachments": []
}
}

Сначала необходимо определить коды нужных вам полей: стандартные поля Okdesk находятся в ключе issue.

Рассмотрим на примере: допустим, вы хотите передать Дату создания заявки и Имя комапнии. Коды полей будут такие:

  • Дата создания заявки: issue.created_at,
  • Имя компании: issue.client.company.name.

Для этих полей необходимо создать поля в анкете Sendsay с типами Дата и время и Свободный ввод соответственно:

Fields

В нашем примере коды полей — custom.q512 и custom.q970. Чтобы сопоставить поля, составьте команду вида /<КОД ПОЛЯ В SENDSAY>,set.copy,<КОД ПОЛЯ В OKDESK>/:

  • Дата создания заявки: /custom.q512,set.copy,issue.created_at/,
  • Имя компании: /custom.q970,set.copy,issue.client.company.name/.

В итоге дополненная ссылка будет такой:

https://be.sendsay.ru/backend/api/<API-ключ>/member.set/email/-/member.email,set.copy,issue.parameters[0].value/base.firstName,set.copy,issue.client.contact.first_name/base.lastName,set.copy,issue.client.contact.last_name/base.middleName,set.copy,issue.client.contact.patronymic/custom.q512,set.copy,issue.created_at/custom.q970,set.copy,issue.client.company.name

Подробнее о том, как создать вебхук-ссылку

Если нужно передавать кастомные поля

Кастомные поля, которые вы создаёте в Okdesk, хранятся в массиве по ключу issue.parameters. Порядок объектов в этом массиве соответствует порядку кастомных полей в Okdesk в разделе Настройки → Заявки → Атрибуты заявок.

Например, если вы создадите в Okdesk помимо поля email кастомные поля custom1 и custom2 в таком порядке, то и в JSON-файле в массиве issue.parameters эти данные придут в том же порядке: сначала объект email, затем custom1 и custom2:

Form

Аналогично стандартным полям, необходимо написать команду сопоставления для каждого кастомного поля в формате /<КОД ПОЛЯ В SENDSAY>,set.copy,parameters[НОМЕР ПОЛЯ В НАСТРОЙКАХ OKDESK].value/, где:

  • <КОД ПОЛЯ В SENDSAY> - уникальный идентификатор поля в sendsay. Например, поле Имя в Sendsay имеет код base.firstName.
  • [НОМЕР ПОЛЯ В НАСТРОЙКАХ OKDESK] - порядковый номер поля в разделе Настройки → Заявки → Атрибуты заявок. Нумерация элементов массива всегда начинается с 0.

На примере полей Custom1 и Custom2 рассмотрим, как сопоставить кастомные поля:

  1. Определите порядковые номера полей в Okdesk. Поле email имеет порядковый номер 0, Custom11, Custom22. Теперь нужно сопоставить эти поля с полями в Sendsay.

  2. Для этих полей необходимо создать поля в дополнительной анкете Sendsay:

    Fields

    В нашем примере коды полей — custom.q512 и custom.q970.

  3. Напишите команды для сопоставления полей формата /<КОД ПОЛЯ В SENDSAY>,set.copy,parameters[НОМЕР ПОЛЯ В НАСТРОЙКАХ OKDESK].value/. В нашем примере так:

    • Custom1: /custom.q512,set.copy,issue.parameters[1].value/,
    • Custom2: /custom.q970,set.copy,issue.parameters[2].value/.
  4. Допишите команды в ссылку и обновите ссылку в настройках вебхука:

    https://be.sendsay.ru/backend/api/<API-КЛЮЧ>/member.set/email/-/member.email,set.copy,issue.parameters[0].value/base.firstName,set.copy,issue.client.contact.first_name/base.lastName,set.copy,issue.client.contact.last_name/base.middleName,set.copy,issue.client.contact.patronymic/custom.q512,set.copy,issue.parameters[1].value/custom.q970,set.copy,issue.parameters[2].value

    Так, при создании заявки с новым контактным лицом, в Sendsay появится новый подписчик с указанными данными. Если же заявка в Okdesk создаётся по контакту, который уже добавлен в Sendsay как подписчик, его данные в анкете обновятся.

Как протестировать передачу данных

  1. Создайте новую заявку в Okdesk.
  2. Перейдите в Sendsay и удостоверьтесь, что новый подписчик с указанными данными появился в базе контактов.