Recopile Respuestas Estructuradas Dentro de WhatsApp
Cree un formulario en el Flow Builder de Meta, sincronícelo con StartMessaging y adjúntelo a un botón de plantilla. Los clientes lo completan sin salir del chat, y cada respuesta llega como campos etiquetados en su bandeja de entrada, la API y sus webhooks. Los WhatsApp Forms están en el plan Business y en la prueba gratis de 14 días.
✦ Prueba gratis de 14 días · Tu propio número de WhatsApp Business · Meta factura los mensajes directamente
Creado en Meta, Usado en StartMessaging
Los Formularios de WhatsApp son Meta Flows. Usted diseña las pantallas y preguntas en el Flow Builder de Meta, en Meta Business Manager; StartMessaging no tiene un editor de formularios propio. Pulse Sincronizar desde Meta y sus formularios aparecen en la página Formularios de WhatsApp con su estado, categorías e ID de Meta, listos para adjuntar al botón Flow de una plantilla.
- Abra el Flow Builder de Meta desde la página Formularios de WhatsApp
- Sincronice desde Meta para traer formularios nuevos o modificados
- Adjunte un formulario sincronizado al botón Flow de una plantilla
Las Respuestas Llegan al Chat, como Campos
Cuando un cliente envía un formulario, la bandeja compartida muestra una tarjeta de Formulario de WhatsApp en la conversación con cada respuesta etiquetada, incluidos archivos de selectores de foto o documento. Una solicitud de dirección se muestra como dirección. Si WhatsApp envía algo que no puede leerse como campos, la tarjeta lo indica y le permite ver exactamente lo que envió WhatsApp, para que no se pierda nada.
- Cada respuesta se muestra con una etiqueta legible
- Las mismas respuestas en GET /api/v1/messages/{id}
- Y en el objeto form del webhook message.received
Del Formulario a las Respuestas en Cuatro Pasos
1. Cree el formulario en Meta
Diseñe las pantallas y preguntas en el Flow Builder de Meta: un formulario de leads, una reserva, una encuesta de opinión o cualquier otra cosa que sus clientes deban completar.
2. Sincronícelo con StartMessaging
En la página Formularios de WhatsApp, pulse Sincronizar desde Meta. Sus formularios aparecen con su estado e ID de Meta.
3. Adjúntelo a una plantilla
En el editor de plantillas, añada un botón Flow (Formulario de WhatsApp), elija el formulario y envíe la plantilla. Meta la revisa como cualquier otra plantilla.
4. Envíelo y lea las respuestas
Envíe la plantilla aprobada desde el panel o la API. Mediante la API, añada su propio flow token para que cada envío se pueda asociar a su lead, pedido o reserva.
Formulario de WhatsApp vs. Preguntas en el Chat vs. Enlace a un Formulario Web
Tres formas de recopilar datos de un cliente en WhatsApp.
| Capacidad | Formulario de WhatsApp | Preguntas en el chat | Enlace a formulario web |
|---|---|---|---|
| Dónde responde el cliente | Dentro de WhatsApp, en pantallas de formulario | Dentro de WhatsApp, un mensaje a la vez | En un navegador, fuera de WhatsApp |
| Qué recibe | Campos estructurados: clave, etiqueta, valor | Texto libre que usted mismo interpreta | Lo que envíe su herramienta de formularios |
| Cómo asociarlo a su registro | El flow token que usted envía | Número de teléfono y conversación | Sus propios parámetros de enlace |
| Se muestra en la bandeja de StartMessaging | ✓ (como tarjeta de formulario con respuestas etiquetadas) | ✓ (como mensajes) | |
| Cómo se envía | Una plantilla con botón Flow | Mensajes de texto o interactivos dentro de la ventana de 24 horas | Un enlace en un mensaje o un botón de URL |
| Dónde se crea | Flow Builder de Meta | Sus agentes o un flujo de chatbot | Su herramienta de formularios web |
Envíe un formulario con su propio token y reciba las respuestas como campos
Defina el flow token con buttonParameters subType "flow". El envío llega en message.received con form.flowToken, form.fields y, mediante context, el mensaje que llevaba el formulario.
# Send the template whose Flow button opens your WhatsApp Form.
# The flow token comes back on the submission as form.flowToken.
curl -X POST https://waba-api.startmessaging.com/api/v1/messages \
-H "Authorization: Bearer sm_live_your_api_key" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: lead-77-demo-form" \
-d '{
"to": "+919812345678",
"type": "template",
"template": {
"name": "book_a_demo",
"language": "en_US",
"parameters": [
{ "text": "Asha" }
],
"buttonParameters": [
{ "index": 0, "subType": "flow", "text": "lead-77" }
]
},
"clientReference": "lead-77"
}' // 1. Send the form (needs the messages:send scope)
const res = await fetch('https://waba-api.startmessaging.com/api/v1/messages', {
method: 'POST',
headers: {
'Authorization': 'Bearer ' + process.env.SM_API_KEY, // sm_live_your_api_key
'Content-Type': 'application/json',
'Idempotency-Key': 'lead-77-demo-form',
},
body: JSON.stringify({
to: '+919812345678',
type: 'template',
template: {
name: 'book_a_demo',
language: 'en_US',
parameters: [{ text: 'Asha' }],
buttonParameters: [{ index: 0, subType: 'flow', text: 'lead-77' }],
},
clientReference: 'lead-77',
}),
});
const { data } = await res.json();
console.log(data.id, data.status);
// 2. In your message.received webhook handler (after verifying the signature)
function onMessageReceived(event) {
const form = event.data.message.form;
if (!form) return;
const answers = Object.fromEntries(form.fields.map((f) => [f.key, f.value]));
// form.flowToken === 'lead-77' -> update that lead with the answers
} import os, requests
res = requests.post(
'https://waba-api.startmessaging.com/api/v1/messages',
headers={
'Authorization': f"Bearer {os.environ['SM_API_KEY']}", # sm_live_your_api_key
'Idempotency-Key': 'lead-77-demo-form',
},
json={
'to': '+919812345678',
'type': 'template',
'template': {
'name': 'book_a_demo',
'language': 'en_US',
'parameters': [{'text': 'Asha'}],
'buttonParameters': [{'index': 0, 'subType': 'flow', 'text': 'lead-77'}],
},
'clientReference': 'lead-77',
},
)
data = res.json()['data']
print(data['id'], data['status'])
# Later: read the answers from the message.received webhook,
# or GET /api/v1/messages/{id} for the inbound message (messages:read scope). <?php
$body = json_encode([
'to' => '+919812345678',
'type' => 'template',
'template' => [
'name' => 'book_a_demo',
'language' => 'en_US',
'parameters' => [['text' => 'Asha']],
'buttonParameters' => [
['index' => 0, 'subType' => 'flow', 'text' => 'lead-77'],
],
],
'clientReference' => 'lead-77',
]);
$ch = curl_init('https://waba-api.startmessaging.com/api/v1/messages');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('SM_API_KEY'), // sm_live_your_api_key
'Content-Type: application/json',
'Idempotency-Key: lead-77-demo-form',
],
CURLOPT_POSTFIELDS => $body,
]);
$data = json_decode(curl_exec($ch), true)['data'];
echo $data['id'] . ' ' . $data['status']; {
"id": "evt_01JCA4M8ZP",
"type": "message.received",
"createdAt": "2026-10-07T11:05:12.000Z",
"workspaceId": "ws_9f2c",
"data": {
"message": {
"id": "msg_8e41",
"conversationId": "conv_3a90",
"contactId": "ct_88b1",
"from": "+919812345678",
"type": "interactive",
"text": "Full name: Asha Rao · City: Pune · Preferred date: 2026-10-12",
"reply": null,
"context": {
"messageId": "msg_7f20",
"clientReference": "lead-77"
},
"form": {
"kind": "flow",
"flowToken": "lead-77",
"flowId": "1187364520093321",
"flowName": "Book a demo",
"fields": [
{ "key": "screen_0_Full_name_0", "label": "Full name", "value": "Asha Rao" },
{ "key": "screen_0_City_1", "label": "City", "value": "Pune" },
{ "key": "screen_0_Preferred_date_2", "label": "Preferred date", "value": "2026-10-12" }
],
"raw": null
},
"referral": null,
"timestamp": "2026-10-07T11:05:10.000Z"
},
"contact": {
"id": "ct_88b1",
"phone": "+919812345678",
"name": "Asha"
}
}
} Formularios de WhatsApp — Preguntas Frecuentes
¿Puedo crear el formulario dentro de StartMessaging?
No. Los Formularios de WhatsApp son Meta Flows, y se crean en el Flow Builder de Meta, en Meta Business Manager. StartMessaging sincroniza sus formularios desde Meta, le permite adjuntarlos a botones de plantilla y muestra y entrega las respuestas.
¿Cómo envío un Formulario de WhatsApp a un cliente?
Adjunte el formulario a un botón Flow de una plantilla y envíe la plantilla a Meta. Cuando Meta la apruebe, envíela como cualquier otra plantilla. Mediante la API, use POST /api/v1/messages con buttonParameters [{ "index": 0, "subType": "flow", "text": "<su flow token>" }].
¿Cómo asocio un envío a mi lead o reserva?
Envíe un flow token que identifique el registro, como "lead-77". Vuelve en el envío como form.flowToken. Si el envío no llevaba token, flowToken es "unused". El context del envío también apunta al mensaje que llevaba el formulario, incluido su clientReference.
¿Dónde puedo leer las respuestas?
En tres lugares: como tarjeta de formulario en la conversación de la bandeja compartida; mediante la API con GET /api/v1/messages/{id} o la lista de mensajes de la conversación; y en el objeto form del webhook message.received, como { kind, flowToken, flowId, flowName, fields: [{ key, label, value }], raw }.
¿Las etiquetas de los campos son las que escribí en mi formulario?
No exactamente. WhatsApp envía cada respuesta con una clave, y StartMessaging convierte esa clave en una etiqueta legible (screen_0_Full_name_0 del Flow Builder se lee "Full name"). Mapee sus datos por key, que es exactamente lo que envió WhatsApp. Si las respuestas no pueden leerse como JSON, fields queda vacío y raw guarda la respuesta original de WhatsApp.
¿Para qué puedo usar los Formularios de WhatsApp?
Cualquier caso en que necesite varios datos de una vez: captación de leads, reservas de citas y demostraciones, encuestas de opinión y solicitudes de dirección. Las respuestas pueden ser texto, aceptaciones sí/no, números, opciones de casillas o archivos de un selector de foto o documento.
¿Qué plan incluye los WhatsApp Forms?
El plan Business y la prueba gratis de 14 días, junto con los flujos de chatbot. Sincronizar formularios desde Meta y añadir un botón Flow (WhatsApp Form) a una plantilla requieren Business. Team cubre la bandeja de entrada compartida, los contactos, las campañas y las respuestas automáticas por palabra clave, pero no los formularios.
¿Los Formularios de WhatsApp tienen un costo adicional?
StartMessaging no cobra por formulario ni por mensaje: los WhatsApp Forms vienen con el plan Business. Meta cobra cada plantilla entregada, incluida la que lleva el formulario, según la tarifa de su categoría, directamente a tu propia Cuenta de WhatsApp Business.
Páginas Relacionadas
Empiece a Recopilar Respuestas en WhatsApp
Conecta tu Cuenta de WhatsApp Business, sincroniza tus formularios desde Meta y envía el primero durante la prueba gratis de 14 días. Los WhatsApp Forms están en el plan Business.