Переезжай на Whapi · от 500 ₽/мес Наш WhatsApp API работает штатно Регистрация
Событие HubSpot → действие · сценарий WhatsApp API

Отправляйте текст в чат WhatsApp по событию HubSpot

Контакт, включённый в воркфлоу, получает текст в WhatsApp, когда HubSpot запускает событие. Если его включила отправка формы, смена стадии сделки или изменение свойства контакта, ваша автоматизация может сопоставить телефон и текст сообщения и отправить его через Whapi.Cloud. Этот сценарий показывает интеграторам, как реализовать такой поток через WhatsApp API.

Запускается событием воркфлоу HubSpot Текст приходит в личный чат контакта
Ноутбук с включением контакта в воркфлоу HubSpot рядом с телефоном, на котором в чате WhatsApp только что появился сопоставленный follow-up текст.
Декоративный пузырь
Сценарий

Когда подходит этот поток

Событие включения в воркфлоу уже есть в HubSpot

Используйте этот поток, когда событие воркфлоу HubSpot (форма, стадия сделки или смена свойства) — единственный источник истины о том, кому писать.

Действие — один личный текст в чат

Используйте этот поток, когда контакт должен получить обычный текст в личном чате, а не приглашение в группу и не публикацию в канале.

Отправка должна идти без ручной вставки

Используйте этот поток, когда продажам или операционной команде не нужно открывать WhatsApp, копировать номер и вставлять follow-up после того, как HubSpot уже включил контакт в воркфлоу.

Чат WhatsApp на телефоне с follow-up текстом, который пришёл после события воркфлоу HubSpot для этого контакта.
Опыт клиента

Контакт получает follow-up прямо в чате

До автоматизации HubSpot уже знает о событии, но контакт ждёт, пока кто-то откроет WhatsApp и вручную напишет follow-up, поэтому многие включённые в воркфлоу контакты так и не получают сообщения.

После запуска потока включённый контакт видит сопоставленный текст WhatsApp для этого события HubSpot. Интеграторы строят такой результат через WhatsApp API.

Воркфлоу

От события HubSpot до одного текста

1

Событие воркфлоу HubSpot

HubSpot запускает событие включения и передаёт телефон контакта и текст сообщения, который сопоставило ваше действие. Whapi.Cloud не размещает воркфлоу HubSpot.

2

Отправьте сопоставленный текст в чат

POST /messages/text

sendMessageText отправляет этот текст на телефон контакта как обычное текстовое сообщение.

Нужно отслеживать доставку? Успешный ответ на отправку не доказывает, что контакт уже получил сообщение. Следите за последующими ack через вебхуки доставки. Узнать о статусах доставки →

Что понадобится

Перед запуском потока

Подключите номер WhatsApp, с которого пойдёт follow-up из HubSpot, и подписывайте каждый запрос API-токеном этого номера. Включение в воркфлоу HubSpot и сопоставление действия остаются в HubSpot или в вашем инструменте автоматизации.

По желанию — подробнее об этом потоке

Реализация через API

Вызов, который отправляет текст

Событие HubSpot уже указало, какому контакту и какое сообщение нужно отправить. Этот вызов доставляет сопоставленный текст на номер WhatsApp контакта.

Получите API-токен бесплатно после регистрации на whapi.cloud и подставьте его в код вместо Your_Token из примеров.

Отправьте сопоставленный текст в чат

{NS}.API_HUB.STEP_1_PURPOSE

curl --request POST \
     --url https://gate.whapi.cloud/messages/text \
     --header 'accept: application/json' \
     --header 'authorization: Bearer Your_Token' \
     --header 'content-type: application/json' \
     --data '
{
  "to": "15052462002",
  "body": "Hello"
}
'
$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://gate.whapi.cloud/messages/text",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "{  \"to\": \"15052462002\",  \"body\": \"Hello\"}",
  CURLOPT_HTTPHEADER => [
    "accept: application/json",
    "authorization: Bearer Your_Token",
    "content-type: application/json"
  ],
]);

$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests

url = "https://gate.whapi.cloud/messages/text"
payload = {"to": "15052462002", "body": "Hello"}
headers = {
    "accept": "application/json",
    "authorization": "Bearer Your_Token",
    "content-type": "application/json"
}

response = requests.request("POST", url, json=payload, headers=headers)
print(response.text)
const response = await fetch("https://gate.whapi.cloud/messages/text", {
  method: "POST",
  headers: {
    accept: "application/json",
    authorization: "Bearer Your_Token",
    "content-type": "application/json"
  },
  body: JSON.stringify({ to: "15052462002", body: "Hello" })
});

console.log(await response.text());
OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{  \"to\": \"15052462002\",  \"body\": \"Hello\"}");
Request request = new Request.Builder()
  .url("https://gate.whapi.cloud/messages/text")
  .method("POST", body)
  .addHeader("accept", "application/json")
  .addHeader("authorization", "Bearer Your_Token")
  .addHeader("content-type", "application/json")
  .build();

Response response = client.newCall(request).execute();
using RestSharp;

var options = new RestClientOptions("https://gate.whapi.cloud/messages/text");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("accept", "application/json");
request.AddHeader("authorization", "Bearer Your_Token");
request.AddHeader("content-type", "application/json");
request.AddJsonBody(new { to = "15052462002", body = "Hello" });
var response = await client.ExecuteAsync(request);

Console.WriteLine("{0}", response.Content);
package main

import (
	"bytes"
	"fmt"
	"io"
	"net/http"
)

func main() {
	body := []byte(`{
  "to": "15052462002",
  "body": "Hello"
}`)
	req, _ := http.NewRequest("POST", "https://gate.whapi.cloud/messages/text", bytes.NewReader(body))
	req.Header.Set("accept", "application/json")
	req.Header.Set("authorization", "Bearer Your_Token")
	req.Header.Set("content-type", "application/json")

	res, _ := http.DefaultClient.Do(req)
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
Статус доставки

Когда текст выходит из pending

Успешный ответ на отправку не означает, что контакт уже получил сообщение. Первый статус, видимый до вебхука, — pending. Последующие изменения статуса приходят только в statuses.post и statuses.put. Если статус остаётся pending и не переходит в sent, delivered или более поздний ack, сообщение не доставлено — проверьте payload и право аккаунта отправлять сообщения такого типа.

  • Считайте застрявший pending недоставленным сообщением, а не часами или очередью, которая ждёт вебхук.

  • Подпишитесь на statuses.post и statuses.put, когда нужно подтверждение отправки, доставки или прочтения для действия в HubSpot.

  • Не отмечайте действие HubSpot выполненным, пока статус в WhatsApp остаётся pending.

Что почитать про доставку и вебхуки

Если что-то пошло не так, напишите в поддержку
Если что-то пошло не так

Обрабатывайте сбои на каждом шаге

Если HubSpot уже запустил событие, но у контакта нет пригодного телефона, отправка отклонена или сообщение не доставлено, повторите попытку или оповестите команду и не отмечайте действие HubSpot выполненным.

HubSpot сработал, а сообщение в WhatsApp не пришло?

Не смешивайте включение в воркфлоу HubSpot и доставку в WhatsApp. Исправьте отсутствующий телефон в payload, повторите sendMessageText или оповестите команду — не отмечайте действие HubSpot выполненным, пока контакт не получил текст. Если после повтора отправка всё равно не проходит, обратитесь в поддержку Whapi и укажите id канала и id неудачного запроса.

Если что-то пошло не так, напишите в поддержку

Разбор проблем по шагам API

Статус Что это значит Что делать
200 Created
400 Wrong request parameters Исправьте неверные параметры в теле запроса отправки и повторите попытку.
401 Need channel authorization for send message Авторизуйте канал на отправку сообщений и повторите запрос с действительным токеном.
402 Trial version limit exceeded
403 It is forbidden to send to this group/recipient Убедитесь, что отправка этому получателю разрешена, и повторите запрос с исправленным значением to.
413 Request body too large
429 Too many requests Снизьте частоту и повторите позже — запросов слишком много.
500 Internal Error
Частые вопросы

События HubSpot и текст в WhatsApp

Нет. Включение в воркфлоу и карту «событие → действие» ведёт HubSpot. Ваша автоматизация или бэкенд берёт телефон контакта и текст сообщения из этого события и затем вызывает sendMessageText через Whapi.Cloud.
Да. Многие интеграторы ловят событие HubSpot в Make или n8n, сопоставляют телефон и текст, а затем вызывают действие отправки Whapi. Эта страница посвящена только шагу отправки в WhatsApp; настройка Make и n8n описана в их собственных руководствах.
Считайте это сбоем из каталога (failure_mode): не вызывайте sendMessageText, оповестите команду или дополните данные контакта и не отмечайте действие HubSpot выполненным.
Нет. Тот поток проверяет, есть ли номера в WhatsApp, перед рассылкой или импортом. Этот поток отправляет сопоставленный текст в чат после события воркфлоу HubSpot для включённого контакта.
Поддерживаемые функции WhatsApp

Всё, что нужно для создания автоматизации WhatsApp

Whapi.Cloud предоставляет доступ к полному набору функций WhatsApp — сообщениям, медиа, группам, каналам, вебхукам и не только. Создавайте ботов, автоматизации и интеграции без функциональных ограничений.

Выбор разработчиков

Нам доверяют 3 300+ разработчиков и SaaS-команд

Разработчики по всему миру используют Whapi.Cloud для создания автоматизаций, ботов, CRM-интеграций, массовых рассылок и продвинутых WhatsApp-воркфлоу. Наша инфраструктура обрабатывает миллионы API-запросов с высокой стабильностью — и этот показатель растёт каждый месяц.

Иконка функции

5,5K+

активных API-каналов

Иконка функции

21M+

API-запросов в месяц

«Всё просто, интуитивно и легко. Документация понятная, и вся нужная информация всегда под рукой. Отличная работа.»

Roberto K. / Web-разработчик

«Мы подключили WhatsApp к нашим процессам через n8n всего за несколько минут. Без кода, без сложностей — всё заработало с первого раза.»

Martin P. / Разработчик

«Whapi.Cloud стал важной частью нашей коммуникации с клиентами. Мы автоматизировали обновления по продуктам, уведомления о заказах и поддержку — без шаблонов и модерации.»

Oscar T. / CTO

Декоративный пузырь