Uau! Construiți-vă integrarea WhatsApp. Începeți gratuit. Înregistrați-vă acum
Anunțuri CTWA · caz de utilizare WhatsApp API

De la clic pe anunț WhatsApp la lead CRM și primul răspuns

Leadul primește primul răspuns în chatul WhatsApp deschis de anunț, ca să nu aștepte clicurile plătite până tastează cineva manual. Când cineva apasă un anunț Click-to-WhatsApp de la Meta, backendul poate scrie un Lead sau Purchase și trimite încălzirea prin Whapi.Cloud. Acest caz arată integratorilor cum implementează fluxul prin WhatsApp API.

Inbound messages.post cu context.ad Corpul de încălzire e text obișnuit de chat
Un anunț Meta pe telefon lângă un chat WhatsApp care așteaptă primul răspuns, cu un card de lead CRM lângă fir.
Bulă decorativă
Caz de utilizare

Când folosești acest flux

Declanșatorul este un clic Click-to-WhatsApp de la Meta

Folosește fluxul când persoana ajunge la tine apăsând un anunț Click-to-WhatsApp de la Meta, nu când a tastat numărul manual fără context de anunț.

Clicul trebuie să creeze o înregistrare în CRM

Folosește fluxul când clicul trebuie să creeze pe backend o înregistrare Lead sau Purchase, nu când păstrezi doar firul în WhatsApp.

Primul răspuns rămâne în acel chat personal

Folosește fluxul când încălzirea trebuie să apară în același chat direct deschis de anunț, nu ca întrebări de calificare, invitație în grup sau trimitere HubSpot outbound.

Ecran de telefon cu chat WhatsApp unde leadul tocmai a primit primul răspuns după un anunț Click-to-WhatsApp, cu un card CRM marcat Lead lângă fir.
Experiența clientului

Leadul primește un prim răspuns după anunț

Înainte de automatizare, chatul rămâne gol după tap pe anunț până scrie un reprezentant, iar vânzările nu vede clicul în CRM.

După ce fluxul rulează, leadul vede o încălzire în acel chat WhatsApp și echipa are Lead sau Purchase pe cardul CRM. Integratorii construiesc acest rezultat cu WhatsApp API.

Flux de lucru

De la clic pe anunț la primul răspuns

1

Clic pe anunț Click-to-WhatsApp Meta

Cineva apasă un anunț Click-to-WhatsApp de la Meta și chatul inbound ajunge pe canalul tău. Payload-ul messages.post poartă context.ad și opțional context.conversion. Backendul scrie Lead sau Purchase în CRM din acel payload. Whapi.Cloud nu găzduiește CRM-ul.

2

Trimite mesajul de încălzire

POST /messages/text

sendMessageText trimite corpul de încălzire pe care backendul l-a ales în același chat personal. Pune telefonul expeditorului sau id-ul chatului din webhook în to.

Ai nevoie de urmărirea livrării? Dacă încălzirea rămâne pending, nu a fost livrată. Schimbările ulterioare vin în statuses.post și statuses.put. Despre statusul livrării →

Cerințe preliminare

Înainte să rulezi fluxul

Conectează numărul WhatsApp care primește aceste chaturi din anunțuri și autentifică fiecare cerere cu tokenul API al acelui număr. Maparea CRM și textul de încălzire rămân în backend.

Opțional — aprofundează pentru acest flux

Implementare API

Apelul care trimite încălzirea

Backendul a citit deja inboundul cu atribuire la anunț și a scris evenimentul CRM. Acest apel livrează textul de încălzire în același chat personal.

Obține tokenul API gratuit după înregistrarea pe whapi.cloud și folosește-l în cod în loc de Your_Token din exemple.

Trimite mesajul de încălzire

Trimite textul de încălzire după ce inboundul Click-to-WhatsApp Meta a sosit.

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))
}
Livrare

Vezi când ajunge încălzirea

Un răspuns de trimitere reușită nu înseamnă că leadul are deja încălzirea. Primul status vizibil înainte de webhook este pending. Schimbările ulterioare vin doar în statuses.post și statuses.put. Dacă statusul rămâne pending și nu trece la sent, delivered sau un ack ulterior, mesajul nu a fost livrat. Verifică payload-ul și permisiunea contului de a trimite acel tip.

  • Un status care rămâne pending înseamnă că încălzirea nu a fost livrată.

  • Urmărește statuses.post și statuses.put pentru sent, delivered și read.

  • Nu trata clicul ca încălzit până când încălzirea trece de pending sau leadul răspunde.

Ce să citești despre livrare și webhooks

Contactează suportul dacă ceva nu a mers bine
Când ceva se strică

Gestionează eșecurile la fiecare pas

Dacă messages.post sosește fără context.ad sau context.conversion utilizabile, sendMessageText e respins sau nelivrat, sau scrierea CRM pe backend eșuează, reîncearcă sau alertează și nu trata clicul ca încălzit sau înregistrat.

Clicul pe anunț a sosit, dar nimic nu s-a înregistrat?

Păstrează scrierea CRM pe backend separată de livrarea WhatsApp. Dacă lipsește contextul de anunț, sari peste trimitere și alertează. Dacă încălzirea eșuează, reîncearcă sendMessageText sau alertează echipa și nu marca clicul ca Lead sau Purchase. Dacă trimiterea continuă să cadă după reîncercare, contactează suportul Whapi cu id-ul canalului și id-ul cererii eșuate.

Contactează suportul dacă ceva nu a mers bine

Depanare pe pas API

Stare Ce înseamnă Ce să faci
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
413 Request body too large
429 Too many requests
500 Internal Error
Întrebări frecvente

Întrebări despre leaduri din anunțuri

Nu. Acest flux scrie Lead sau Purchase în CRM și trimite o încălzire. Întrebările de calificare în chatul anunțului sunt altă ramură.
Nu. Backendul alege Lead sau Purchase și scrie înregistrarea CRM. Whapi.Cloud livrează contextul inbound al anunțului și trimiterea de încălzire.
Atribuirea există când clicul pe anunț duce la un mesaj și câmpurile de anunț sunt pe acel inbound. Dacă lipsește context.ad, reîncearcă sau alertează și nu trata clicul ca înregistrat.
Nu. WhatsApp outbound HubSpot pornește de la un eveniment CRM. Acest flux pornește de la un clic Click-to-WhatsApp Meta.
Nu. Articolele de comandă din catalog sunt altă sursă. Aici Purchase e evenimentul CRM pe care backendul îl scrie după chatul cu atribuire la anunț.
Funcționalități WhatsApp suportate

Tot ce ai nevoie pentru a construi automatizări pe WhatsApp

Whapi.Cloud îți oferă acces la un set complet de funcționalități WhatsApp — mesaje, media, grupuri, canale, webhook-uri și altele. Construiește boți, automatizări și integrări fără limitări de funcții.

Ales de dezvoltatori

De încredere pentru peste 3.300 de dezvoltatori și echipe SaaS

Dezvoltatori din întreaga lume se bazează pe Whapi.Cloud pentru a crea automatizări, boți, integrări CRM, instrumente de mesagerie în masă și fluxuri avansate WhatsApp. Infrastructura noastră procesează milioane de cereri API cu o stabilitate ridicată — iar numărul crește în fiecare lună.

Pictogramă funcționalitate

5,5K+

canale API active

Pictogramă funcționalitate

21M+

cereri API pe lună

„Totul este simplu, intuitiv și ușor de folosit. Documentația este clară, iar toate informațiile necesare sunt la îndemână. Foarte bine făcut.”

Roberto K. / Web Developer

„Am conectat WhatsApp la fluxurile noastre în n8n în doar câteva minute. Fără cod, fără complicații — totul a funcționat din prima.”

Martin P. / Developer

„Whapi.Cloud a devenit o parte esențială a comunicării cu clienții. Am automatizat actualizări de produse, notificări de comenzi și mesaje de suport — fără șabloane sau aprobări Meta.”

Oscar T. / CTO

Bulă decorativă