Getcourse
Интеграция с Геткурсом - получение вебхуков, регистрация на вебинар
Last updated
Интеграция с Геткурсом - получение вебхуков, регистрация на вебинар
Last updated
Доступно только на тарифе "Инфобиз".
Попробуйте создать свою онлайн-школу на salebot.pro У нас можно принимать оплату через Продамус, к тому же работа с онлайн продуктами полностью бесплатна. Подробнее по ссылке: https://docs.salebot.pro/kursy
Для того, чтобы успешно заполнить поля, перейдите в вашем Геткурсе на эту страницу: http://ВАШ_АККАУНТ.getcourse.ru/saas/account/api Если у вас собственный домен, то токен находится по адресу: https://<Ваш домен>/saas/account/api
На открывшейся странице нам нужны поля 1. Account name и 2. «Ваш секретный ключ». (фото ниже)
При создании ключа или его копировании проверьте, что возможность Чтения и записи включена. Если в текущем ключе нет таких настроек, то сгенерируйте новый ключ включив чтение и запись. Пример в скриншоте:
Если при формировании ключа не включить чтение и запись, то при работе вы можете получать ошибку "Действие запрещено".
Далее переходим в проект на salebot в раздел Настройки и добавляем переменные в константы проекта:
getcourse_account_name - Account name
getcourse_secret - Ваш секретный ключ
Дополнительное поле создается в Геткурсе в разделе Пользователи – Дополнительные поля
Кликните Добавить поле. Выберите Строка.
В поля Заголовок и Название при выводе впишите 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 с ответом сервера.
Примечания:
Если не передан какой-то параметр, но передан следующий за ним, то его пропуск нужно заменить двумя символами кавычек (двойными “” или одинарными ‘’)
Обязательным для регистрации пользователя является только email или телефон, все остальное – по желанию.
Если в системе не существует пользователя с указанным 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
Если вы хотите, чтобы клиент регистрировался в Геткурс не через бота, а через лендинг Геткурса, но при этом получал в свой мессенджер вебхуки из Геткурса, то внесите следующие правки в настройки лендинга.
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
Далее вы можете отправлять вебхуки из Геткурса в аккаунт этого пользователя в Сейлбот.