Getcourse

Интеграция с Геткурсом - получение вебхуков, регистрация на вебинар

Доступно только на тарифе "Инфобиз".

Попробуйте создать свою онлайн-школу на salebot.pro У нас можно принимать оплату через Продамус, к тому же работа с онлайн продуктами полностью бесплатна. Подробнее по ссылке: https://docs.salebot.pro/kursy

Как настроить Getcourse

Для того, чтобы успешно заполнить поля, перейдите в вашем Геткурсе на эту страницу: http://ВАШ_АККАУНТ.getcourse.ru/saas/account/api Если у вас собственный домен, то токен находится по адресу: https://<Ваш домен>/saas/account/api

На открывшейся странице нам нужны поля 1. Account name и 2. «Ваш секретный ключ». (фото ниже)

При создании ключа или его копировании проверьте, что возможность Чтения и записи включена. Если в текущем ключе нет таких настроек, то сгенерируйте новый ключ включив чтение и запись. Пример в скриншоте:

Если при формировании ключа не включить чтение и запись, то при работе вы можете получать ошибку "Действие запрещено".

Далее переходим в проект на salebot в раздел Настройки и добавляем переменные в константы проекта:

  1. getcourse_account_name - Account name

  2. getcourse_secret - Ваш секретный ключ

Как создать в Getcourse дополнительное поле клиента (Salebot client_id)

Дополнительное поле создается в Геткурсе в разделе Пользователи – Дополнительные поля

Кликните Добавить поле. Выберите Строка.

В поля Заголовок и Название при выводе впишите sb_id. Поставьте галочку "Является ключевым", если хотите видеть это поле на странице списка пользователей (для удобства поиска клиентов из чат-бота). Нажмите Сохранить.

Теперь у вас в списке и карточке клиента появилось это дополнительное поле.

Как добавить пользователя

Этот метод в Getcourse работает только на платных тарифах Getcourse. На тестовом периоде - нет.

Можно не использовать этот метод, а сразу создавать заказ для клиента (например, регистрация на вебинар), используя функцию Добавление заказа (она описана чуть ниже).

В блоке, где надо в Геткурс сделать добавление клиента, заполните поле “Калькулятор” следующим образом:

getcourse_add_user(refresh, email, phone, name, user_data, system_data, session_data, domain)

Важен порядок передаваемых данных!

Обязательные параметры:

  • refresh - обновлять ли данные существующего пользователя 1 - да, 0 - нет

  • емейл и\или телефон

Дополнительные параметры:

  • name - имя пользователя

  • user_data - объект с данными пользователя

  • partner_email - email партнера (для пользователя)

  • session_data - дополнительные параметры

  • domain - имя домена(по умолчанию ‘ru’). В случае, если потребуется передать метод по адресу другого домена(например, getcourse.io/getcourse.us/getcourse.uk и тд),укажите домен вашего региона, например, ‘com’. Если не указать ничего, автоматически будет использован адрес российского региона.

Параметры email, phone и name, можно заменить на две двойные кавычки, их значение автоматически подтянется из переменных: email, phone и getcourse_name соответственно, если они существуют у клиента. Пример: getcourse_add_user(1,””, “7811111111”)

user_data - '{"last_name": "Фамилия", "city": "город", "country": "страна"}'

Для добавления дополнительных полей пользователя нужно передать в объекте с данными пользователя user_data параметр addfields, в котором перечислены нужные параметры с данными: пример: '{"last_name": "Фамилия", "city": "#{city}", "country": "Россия", "addfields":{"Доп.поле1":"значение","Доп.поле2":"значение"}}'

или просто: '{"addfields":{"Доп.поле1":"значение","Доп.поле2":"значение"}}'

Этот параметр можно добавить не только пользователю, но и сделке в параметре deal_data

partner_email - email партнера (для пользователя)

  • Если указанный для создаваемого/обновляемого пользователя партнер существует, то пользователь в системе будет помечен как реферал этого партнера.

  • Если пользователь-партнер не существует — будет возвращена ошибка.

  • Если пользователь-партнер существует, но не является партнером, то указанный пользователь автоматически получит статус партнера.

session_data - '{"utm_source":"", "utm_medium":"", "utm_content":"", "utm_campaign":"", "utm_group":"", "gcpc":"", "gcao":"", "referer":""}'

Данные из объекта session будут зафиксированы как параметры регистрации нового пользователя. Если происходит обновление данных (только при refresh == 1), то предыдущие будут заменены.

Функция возвращает True при успешном добавлении или сообщении с ошибкой (например, если не переданы группы: groups list not send).

Также при успехе клиенту запишется переменная getcourse_user_id (идентификатор клиента в геткурс) и getcourse_user с ответом сервера.

Примечания:

  1. Если не передан какой-то параметр, но передан следующий за ним, то его пропуск нужно заменить двумя символами кавычек (двойными “” или одинарными ‘’)

  2. Обязательным для регистрации пользователя является только email или телефон, все остальное – по желанию.

  3. Если в системе не существует пользователя с указанным email — будет создан новый пользователь.

Примеры вызова функции:

result = getcourse_add_user('0', 'mail@example.com', '', 'Nilson', '', 'partneremail@email.ru', '{ "utm_source": "4545", "utm_medium": "55555"}')

result = getcourse_add_user('1', 'mail@example.com')

result = getcourse_add_user('1', 'mail@example.com', '7811111111', 'Nilson', '{"last_name": "Tesla", "city": "Москва", "country": "Россия"}', 'partneremail@email.ru', '{ "utm_source": "4545", "utm_medium": "55555"}')

Как добавить пользователя в группу

Для добавления пользователя в группы, нужно вызвать функцию getcourse_add_user_to_groups(список групп, идентификатор пользователя, domain)

Функция принимает два обязательных параметра:

  • список названий групп, в которые нужно добавить пользователя

  • идентификатор пользователя в геткурс (не обязателен, если у пользователя есть переменная getcourse_user_id)

и один необязательный параметр:

  • domain - имя домена(по умолчанию ‘ru’). В случае, если потребуется передать метод по адресу другого домена(например, getcourse.io/getcourse.us/getcourse.uk и тд),укажите домен вашего региона, например, ‘com’. Если не указать ничего, автоматически будет использован адрес российского региона.

В результате выполнения запроса пользователь будет состоять во всех группах, указанных в списке group_name. Если ранее пользователь состоял в каких-либо группах, не указанных в group_name — он будет удален из этих групп.

Пример вызова функции:

getcourse_add_user_to_groups('["Группа 1", "Группа 2"]', 199388144)

Функция возвращает True при успешном добавлении или сообщении с ошибкой (например, если не переданы группы: groups list not send).

Как добавить заказ

Для создания заказа необходимо перейти в геткурс, раздел Продажи – Продукты . Зайдите в нужное предложение, вкладка – Настройки. Здесь нужно придумать и вписать Уникальный код предложения.

Возвращаемся в воронку в Salebot. В настройках того блока, где нужно сделать добавление заказа для Геткурс, заполните поле “Калькулятор” следующим образом:

getcourse_add_deal(email, phone, offer_code, deal_cost, deal_data, user_data, system_data, session_data, domain)

Важен порядок передаваемых данных!

Обязательные параметры:

  • емейл и\или телефон

  • offer_code - уникальный код предложения (введенный выше в настройках)

  • deal_cost - сумма заказа

Дополнительные параметры:

  • deal_data - объект с данными заказа

  • user_data - объект с данными пользователя

  • system_data - email партнера (для пользователя)

  • session_data - дополнительные параметры

  • domain - имя домена(по умолчанию ‘ru’). В случае, если потребуется передать метод по адресу другого домена(например, getcourse.io/getcourse.us/getcourse.uk и тд),укажите домен вашего региона, например, ‘com’. Если не указать ничего, автоматически будет использован адрес российского региона.

Параметры email и phone, можно заменить на две двойные кавычки, значение туда автоматически подтягиваются из переменных: email, phone соответственно, если они существуют у клиента.

Если не передан какой-то параметр, но передан следующий за ним, его пропуск нужно заменить двумя символами кавычек (двойными “” или одинарными ‘’)

Если пользователь с указанным email уже есть в системе, то заказ добавляется к нему. Если его в системе еще нет, то он создается.'

Далее описаны параметры, в которых можно передать как одно значение, так и несколько.

deal_data - '{"product_title":"наименование предложения", "product_description":"описание предложения", "quantity":1, "deal_status":"код статуса заказа", "deal_is_paid": "нет", "manager_email":"email менеджера", "deal_created_at":"дата заказа", "deal_finished_at":"дата оплаты/завершения заказа", "deal_comment":"комментарий", "payment_type":"тип платежа из списка", "payment_status":"статус платежа из списка", "partner_email":"email партнера (для заказа)", "deal_currency":"код валюты заказа", "addfields":{"Доп.поле1":"значение","Доп.поле2":"значение"}}'

user_data - '{"first_name":"имя", "last_name":"фамилия", "city":"город", "country":"страна"}'

Для добавления дополнительных полей пользователя нужно передать в объекте с данными пользователя user_data параметр addfields, в котором перечислены нужные параметры с данными: пример: '{"last_name": "Фамилия", "city": "#{city}", "country": "Россия", "addfields":{"Доп.поле1":"значение","Доп.поле2":"значение"}}'

или просто: '{"addfields":{"Доп.поле1":"значение","Доп.поле2":"значение"}}'

system_data - '{"refresh_if_exists":1, "partner_email":"email партнера (для пользователя)*", "multiple_offers":0, "return_payment_link":1}'

session_data - '{"utm_source":"", "utm_medium":"", "utm_content":"", "utm_campaign":"", "utm_group":"", "gcpc":"", "gcao":"", "referer":""}'

Объект session_data при импорте сделки содержит UTM-параметры, которые фиксируются как контекст создания заказа.

Дополнительно, если при импорте сделки происходит создание нового пользователя, то объект session используется так же и как контекст регистрации пользователя. Однако, при обновлении данных пользователя при импорте сделки объект session используется только для сделки, но не для пользователя.

Функция возвращает True при успешном добавлении или сообщение с описанием ошибки.

Также при успехе у клиента появятся переменные getcourse_deal_number (номер заказа используется для редактирования заказа и изменения статуса), getcourse_deal_id (идентификатор заказа в геткурс) и getcourse_payment_link с ссылкой на оплату (если не было передано в system_data - "return_payment_link":0)

Примеры вызова функции:

result = getcourse_add_deal('aaa@mail.com', '', '123456', '23', '{"product_description":"Описание", "quantity":"1"}')

result = getcourse_add_deal('aaa@mail.com', '', '123456', '24', '{"product_description":"Описание", "quantity":"1"}', '{"last_name": "Tesla", "city": "Ростов", "country": "Россия"}', '', '{ "utm_source": "#{name}", "utm_medium": "#{utm_medium}"}')

result = getcourse_add_deal('aaa@mail.com', '', '123456', '24', '{"product_description":"Описание", "quantity":"1"}', '{"last_name": "Tesla", "city": "Ростов", "country": "Россия"}', ' '{"refresh_if_exists":1, "multiple_offers":0, "return_payment_link":1}'', '{ "utm_source": "#{name}", "utm_medium": "#{utm_medium}"}')

Как редактировать заказ

В блоке, где нужно отредактировать заказ Геткурс, в Salebot заполните поле “Калькулятор” следующим образом:

getcourse_update_deal(email, phone, deal_number, multiple_offers, deal_data, user_data, system_data, session_data, domain)

Важен порядок передаваемых данных!

Обязательные параметры:

  • емейл и\или телефон

  • deal_number - номер заказа, если не передан “”, то берется из переменной getcourse_deal_number

  • multiple_offers - 1 - переданные позиции в сделке добавляются к существующим, 0 - заменяют их

Дополнительные параметры:

  • deal_data - объект с данными заказа

  • user_data - объект с данными пользователя

  • system_data - email партнера (для пользователя)

  • session_data - дополнительные параметры

  • domain - имя домена(по умолчанию ‘ru’). В случае, если потребуется передать метод по адресу другого домена(например, getcourse.io/getcourse.us/getcourse.uk и тд),укажите домен вашего региона, например, ‘com’. Если не указать ничего, автоматически будет использован адрес российского региона.

Параметры email и phone, можно заменить на две двойные кавычки, значение туда автоматически подтягиваются из переменных: email, phone соответственно, если они существуют у клиента.

Если не передан какой-то параметр, но передан следующий за ним, его пропуск нужно заменить двумя символами кавычек (двойными “” или одинарными ‘’)

Далее описаны параметры, в которых можно передать как одно значение, так и несколько.

deal_data - '{"product_title":"наименование предложения", "product_description":"описание предложения", "quantity":1, "deal_status":"код статуса заказа", "deal_is_paid": "нет", "manager_email":"email менеджера", "deal_created_at":"дата заказа", "deal_finished_at":"дата оплаты/завершения заказа", "deal_comment":"комментарий", "payment_type":"тип платежа из списка", "payment_status":"статус платежа из списка", "partner_email":"email партнера (для заказа)", "deal_currency":"код валюты заказа"}'

user_data - '{"first_name":"имя", "last_name":"фамилия", "city":"город", "country":"страна"}'

Для добавления дополнительных полей пользователя нужно передать в объекте с данными пользователя user_data параметр addfields, в котором перечислены нужные параметры с данными: пример: '{"last_name": "Фамилия", "city": "#{city}", "country": "Россия", "addfields":{"Доп.поле1":"значение","Доп.поле2":"значение"}}'

или просто: '{"addfields":{"Доп.поле1":"значение","Доп.поле2":"значение"}}'

system_data - '{"refresh_if_exists":1, "partner_email":"email партнера (для пользователя)*","return_payment_link":1}'

session_data - '{"utm_source":"", "utm_medium":"", "utm_content":"", "utm_campaign":"", "utm_group":"", "gcpc":"", "gcao":"", "referer":""}'

Функция возвращает True при успешном результате или сообщении с ошибкой (например, если не передан номер заказа и его нет в переменных: deal_number not send and not found in variable getcourse_deal_number).

Примеры вызова функции:

result = getcourse_update_deal('aaa@mail.com', '', '124563', '0', '{"product_description":"Описание22", "partner_email":"partner@email.ru", "quantity":"1"}')

result = getcourse_update_deal('aaa@mail.com', '7811111111', '124563', '0', '{"product_description":"Описание22", "deal_comment":"комментарий", "quantity":"1"}', '{"last_name": "Tesla2", "city": "#{city}", "country": "Каир"}', '', '{ "utm_source": "SOURSE", "utm_medium": "#{utm_medium}"}')

Как изменить статус заказа

getcourse_change_deal_status(status, email, phone, deal_number, domain)

Важен порядок передаваемых данных!

Емейл и телефон можно не указывать, тогда они подтянутся из переменных клиента email и phone

Можно передать оба значения: емейл и телефон, или одно значение (емейл или телефон). Если передаете одно значение, то второе нужно заменить на две двойные кавычки("").

Если заказ был создан из бота и/или у клиента (в переменных Информация о сделке) присутствует переменная getcourse_deal_number, то deal_number можно не передавать, функция автоматически подтянет это значение.

domain - имя домена(по умолчанию ‘ru’). В случае, если потребуется передать метод по адресу другого домена(например, getcourse.io/getcourse.us/getcourse.uk и тд),укажите домен вашего региона, например, ‘com’. Если не указать ничего, автоматически будет использован адрес российского региона.

Список возможных статусов заказа:

  • not_confirmed - Не подтвержден

  • in_work - В работе

  • payed - Завершен

  • cancelled - Отменен

  • false - Ложный

  • payment_waiting - Ожидаем оплаты

  • part_payed - Частично оплачен

  • waiting_for_return - Ожидаем возврата

  • pending - Отложен

Тестовые заказы отмечают статусом false, чтоб не отображались в списке всех заказов, так как возможности удаления заказов геткурс не предоставляет

Примеры:

result = getcourse_change_deal_status("in_work", 'mail@example.com', "", 1455)

result = getcourse_change_deal_status("in_work")

Как отправить вебхук из Геткурс

Вебхук может понадобиться, если, например, вы захотите передавать в бота информацию об оплате ваших товаров. В сервисе Геткурс для отправки параметров в бот необходимо настроить Процесс:

Перейдите в Задачи – Процессы – Создать процесс.

Введите название процесса, выберите объект, данные которого будете передавать. Нажмите Создать. Перейдите на вкладку Процесс и нажмите Добавить блок. Выберите Операция – Вызвать URL.

Выставьте Метод POST.

В URL впишите адрес для вебхука, включающий передаваемые параметры:

Если отправляете параметры клиенту с Ватсап (в том числе, если хотите написать ему первым), то обязательными являются следующие параметры:

При настройке процесса по заказам:

https://chatter.salebot.pro/getcourse_webhook/Ключ доступа к API из настроек проекта Salebot?phone={object.user.phone}&callback_text=send&…

(также рекомендуется добавить емейл &email={object.user.email})

При настройке процесса по пользователям:

https://chatter.salebot.pro/getcourse_webhook/Ключ доступа к API из настроек проекта Salebot?phone={object.phone}&callback_text=send&…

(также рекомендуется добавить емейл &email={object.email})

Если отправляете параметры пользователю с другим мессенджером, то обязательными являются следующие параметры:

При настройке процесса по заказам:

https://chatter.salebot.pro/getcourse_webhook/Ключ доступа к API из настроек проекта Salebot?client_id={object.user.sb_id}&callback_text=any_message&… -

(также рекомендуется добавить емейл &email={object.user.email})

При настройке процесса по пользователям:

https://chatter.salebot.pro/getcourse_webhook/Ключ доступа к API из настроек проекта Salebot?client_id={object.sb_id}&callback_text=any_message&…

(также рекомендуется добавить емейл &email={object.email})

Email рекомендуется передавать, так как по нему ищется клиент в сейлбот, если не найден по номеру телефона или не передан client_id.

Ключ доступа к API из настроек проекта Salebot - вместо этого вставьте токен из раздела Настройки проекта в Salebot

phone – здесь подтягиваете номер телефона пользователя client_id – здесь подтягиваете значение, которое записано в дополнительное поле в Геткурсе (в нем значение #{client_id} из Salebot) callback_text – текст, который служит Условием в зеленых или серых блоках Salebot, чтобы отправлять сообщения пользователю. Только в условии к нему добавится еще getcourse

Здесь подробная инструкция по тому как передавать значения из переменных Геткурса в другие системы (в Salebot) https://getcourse.ru/blog/275857

Для отлова этих вебхуков в вашей воронке создайте блок, в поле Условие которого впишите фразу, состоящую из слова getcourse + тот текст, который отправляете в Вебхуке в параметре callback_text:

Например, если отправите из Геткурса callback_text=send, то в Условие блока надо поставить getcourse send

Если не приходит вебхук, проверьте правильность передачи параметров client_id, phone или email

Как передать Salebot client_id при регистрации клиента через лендинг Getcourse

Если вы хотите, чтобы клиент регистрировался в Геткурс не через бота, а через лендинг Геткурса, но при этом получал в свой мессенджер вебхуки из Геткурса, то внесите следующие правки в настройки лендинга.

1. Проверьте, чтобы в карточке клиента в Getcourse было создано дополнительное поле sb_id. Как его создавать описано выше.

2. Пройдите в настройки своего лендинга (или создайте его). Сайт – Страницы – клик по нужному лендингу.

3. Внутри настроек лендинга кликните по кнопке Редактор страницы

4. Создайте форму регистрации клиента или пройдите в Настройки уже существующей

5. Теперь добавьте Поле пользователя

6. В списке Поле выбираем название нашего поля sb_id. Заголовок поля тоже ставим sb_id. Для того, чтобы поле стало невидимым для пользователей прописываем CSS- класс элемента hide. И для связи с нашим полем прописываем там же sb_id

7. Сохраняем настройки формы.

8. Внизу Настроек лендинга создайте новый элемент

9. Выберите Вставка – JAVA-Script код

10. Перейдите в Настройки этого элемента. Название можно написать любое, а вот в поле Значение впишите следующий код:

$(document).ready(function(){ var regex = new RegExp('[\\?&]sid=([^&#]+)'); var match = regex.exec(window.location.href); if (match && match.length) { $('.sb_id input').val(decodeURIComponent(match[1])); } });

11. Сохраните этот элемент. Опубликуйте изменения страницы.

12. Теперь вы можете из бота выдать клиенту ссылку на этот лендинг с дополнительным параметром sid после знака вопроса:

https://salebot2.getcourse.ru/salebot?sid=#{client_id}

Он перейдёт по ней, зарегистрируется в форме и у вас в Геткурсе появится новый пользователь, у которого дополнительное поле sb_id заполнено значением client_id из Salebot

Далее вы можете отправлять вебхуки из Геткурса в аккаунт этого пользователя в Сейлбот.

Last updated