Integración de WhatsApp con Base44: tu propio número
Con Whatsable puedes conectar a tu app de Base44 el número de WhatsApp Business que ya tienes. Base44 le da a cada agente in-app un número de WhatsApp nuevo asignado.
Conserva tu número. Conserva la app WhatsApp Business. Escríbeles primero a tus clientes con plantillas aprobadas.
Meta Tech Provider oficial · Conserva la app WhatsApp Business
Lo que Base44 te da hoy y lo que suma Whatsable
El canal de WhatsApp integrado de Base44 y tu propio número pueden funcionar en paralelo. El canal integrado te da un número nuevo por agente. Whatsable suma el que tus clientes ya tienen guardado.
Base44 hoy: un número asignado
Cada agente in-app de Base44 recibe su propio número de WhatsApp nuevo.
- Se puede conectar a WhatsApp un total de 3 agentes in-app entre todas tus apps. Los Superagents tienen su propio cupo aparte.
- Las personas deben enviar el primer mensaje. Base44 aplica esta regla para ayudar a prevenir el spam.
- Cada mensaje enviado o recibido usa 1 crédito de integración, más otros créditos por acciones del agente, como las llamadas al LLM. La función es gratis en todos los planes de Base44.
“Conecta tus propios números de WhatsApp Business.”
Whatsable: el número que ya tienes
Whatsable conecta el número de WhatsApp Business que ya usas a tu app de Base44 mediante la WhatsApp Business Platform oficial de Meta. El número asignado de Base44 sigue funcionando junto a él.
- Usa tu propio número de WhatsApp Business o el número de teléfono de EE. UU. incluido en todos los planes. Puedes seguir usando la app WhatsApp Business en tu número.
- No tienes que eliminar la app WhatsApp Business. Con la coexistencia, tu equipo sigue respondiendo desde el teléfono en el mismo número.
- Para escribirle primero a un cliente, o más de 24 horas después de su último mensaje, envía una plantilla aprobada. Meta no entrega plantillas de marketing a usuarios de WhatsApp en EE. UU.; las plantillas de utilidad y autenticación sí se entregan.
- Una función de backend de Base44 lee tu clave de API de Whatsable desde Base44 Secrets. Te toca configurarla a ti, no es un botón que Base44 activa por ti.
Función de backend de Base44 → Whatsable → tu propio número de WhatsApp Business
La configuración toma cuatro pasos, y es una ruta documentada, no un conector nativo ni una activación de un clic.
- 1Conecta tu número — Conecta tu número de WhatsApp Business en Whatsable con el flujo de registro de Meta. No tienes que eliminar la app WhatsApp Business. Con la coexistencia, tu equipo sigue respondiendo desde el teléfono en el mismo número.
- 2Crea tu clave de API — En Whatsable, abre Configuración → Claves de API y haz clic en Crear clave de API. Copia la clave. La API y los webhooks de Whatsable están en Pro y Agency, no en Bulk Message.
- 3Guarda la clave en Base44 Secrets — En Base44, abre Dashboard → Secrets → Add Secret y guarda la clave como WHATSABLE_API_KEY. O ejecuta base44 secrets set WHATSABLE_API_KEY=your_key. Las funciones de backend requieren un plan Builder de Base44 o superior. No pongas la clave en el chat ni en el código de frontend.
- 4Envía y recibe — Agrega las funciones de backend que aparecen abajo. Leen la clave con secrets.get() dentro del handler y llaman a la API de Whatsable. Despliega la función y copia su URL: https://<your-app-domain>/functions/whatsappWebhook. En Whatsable, abre Configuración → Webhooks, haz clic en Agregar endpoint y pega la URL. En Enviar a, elige Tu propio servidor para los mensajes entrantes. Para recibir también los mensajes que envías, elige Make, Zapier o n8n.
Tres funciones de Base44, una para cada tarea
Las funciones de backend de Base44 corren en Deno. Cada una tiene su propio endpoint HTTPS, así que un mismo proyecto puede enviar y recibir mensajes.
Envía un mensaje
Esta función lee tu clave de API de Whatsable con secrets.get() dentro del handler y envía un mensaje de texto libre. Úsala dentro de la ventana de atención al cliente.
import { secrets } from "base44:runtime";
export default async function (req: Request): Promise<Response> {
const { phone, text, idempotencyKey } = await req.json();
const apiKey = secrets.get("WHATSABLE_API_KEY");
const res = await fetch(
"https://api.whatsable.app/v1/messages",
{
method: "POST",
headers: {
Authorization: `Bearer ${apiKey}`,
"Content-Type": "application/json",
// Optional. Reuse a key only to retry a send that got no answer.
"Idempotency-Key": idempotencyKey ?? crypto.randomUUID(),
},
body: JSON.stringify({
to: phone, // E.164, e.g. "+15551234567"
type: "text",
text: { body: text },
}),
},
);
const data = await res.json();
// Refused before sending (key, scope, closed 24-hour window...): HTTP error with data.error.
if (!res.ok) {
return Response.json({ ok: false, error: data.error }, { status: 502 });
}
// 201 means recorded, not sent. A WhatsApp refusal is status "failed" with data.error.
if (data.status === "failed") {
return Response.json({ ok: false, error: data.error }, { status: 502 });
}
return Response.json({ ok: true, messageId: data.id, status: data.status });
}Escríbele primero a un cliente con una plantilla
Una plantilla aprobada por Meta permite que tu app inicie la conversación. Úsala para el primer mensaje o cuando se haya cerrado la ventana de atención al cliente.
import { secrets } from "base44:runtime";
export default async function (req: Request): Promise<Response> {
const { phone, templateName, language, variables, idempotencyKey } = await req.json();
const apiKey = secrets.get("WHATSABLE_API_KEY");
const res = await fetch(
"https://api.whatsable.app/v1/messages",
{
method: "POST",
headers: {
Authorization: `Bearer ${apiKey}`,
"Content-Type": "application/json",
// Optional. Reuse a key only to retry a send that got no answer.
"Idempotency-Key": idempotencyKey ?? crypto.randomUUID(),
},
body: JSON.stringify({
to: phone, // E.164, e.g. "+15551234567"
type: "template",
template: {
name: templateName,
language: language, // e.g. "en_US"
// Keyed by the template's variables[].key, e.g. { "1": "Ana", "2": "#1042" }
variables: variables ?? {},
},
}),
},
);
const data = await res.json();
// Refused before sending (key, scope, unapproved template...): HTTP error with data.error.
if (!res.ok) {
return Response.json({ ok: false, error: data.error }, { status: 502 });
}
// 201 means recorded, not sent. A WhatsApp refusal is status "failed" with data.error.
if (data.status === "failed") {
return Response.json({ ok: false, error: data.error }, { status: 502 });
}
return Response.json({ ok: true, messageId: data.id, status: data.status });
}Recibe mensajes entrantes
Whatsable envía un POST con un payload JSON al endpoint de esta función. Las llamadas HTTP directas no tienen un usuario con sesión iniciada, así que usa asServiceRole para acceder a los recursos de Base44 que lo requieran.
export default async function (req: Request): Promise<Response> {
const payload = await req.json();
// Messages you send arrive with incoming_message set to false. Skip them here.
if (payload.incoming_message === false) {
return Response.json({ ok: true });
}
const phone = String(payload.phone_number);
const name = payload.recipient_name ?? "";
const text = payload.last_message_of_user ?? "";
// Save or act on the message here. Answer quickly with a 2xx.
return Response.json({ ok: true, phone, name, text });
}Dos formas en que quienes crean en Base44 usan su propio número
Actualizaciones de pedidos desde tu propio número
Tu app de Base44 hace seguimiento de pedidos de clientes que ya le escriben al WhatsApp de tu negocio.
Resultado: Una función de backend envía una plantilla aprobada desde ese número. Cuando el cliente responde, el texto libre funciona dentro de la ventana de atención al cliente.
Del prototipo a producción
Tu agente de Base44 demostró la idea con un número asignado, y ahora los clientes necesitan encontrarte en el número que conocen.
Resultado: Agrega una función de backend y un webhook al mismo proyecto de Base44. El número asignado sigue funcionando en paralelo.
Base44 y WhatsApp: tus preguntas, respondidas
Sí. Cada agente in-app de Base44 recibe su propio número de WhatsApp. Se puede conectar un total de 3 agentes in-app entre todas tus apps, y las personas deben enviar el primer mensaje.
Sí, con Whatsable. Base44 todavía muestra Custom Numbers como Coming Soon en su propia documentación, así que esta es una ruta documentada: una función de backend de tu app llama a la API de Whatsable.
Sí. No tienes que eliminar la app WhatsApp Business. Con la coexistencia, tu equipo sigue respondiendo desde el teléfono en el mismo número. Las respuestas escritas en la app también llegan a tu webhook, una vez que activas los salientes.
Sí. Para escribirle primero a un cliente, o más de 24 horas después de su último mensaje, envía una plantilla aprobada. Meta no entrega plantillas de marketing a usuarios de WhatsApp en EE. UU.; las plantillas de utilidad y autenticación sí se entregan. El canal de agentes propio de Base44 requiere que la persona escriba primero.
No. Whatsable conecta tu propio número con el flujo de registro de Meta, y envía y recibe en la WhatsApp Cloud API oficial de Meta. No usa vinculación por código QR ni bibliotecas de WhatsApp Web como Baileys.
Con un webhook que apunta a una función de backend. Cada función de Base44 tiene su propio endpoint HTTPS. Despliega la función y copia su URL: https://<your-app-domain>/functions/whatsappWebhook. En Whatsable, abre Configuración → Webhooks, haz clic en Agregar endpoint y pega la URL. En Enviar a, elige Tu propio servidor para los mensajes entrantes. Para recibir también los mensajes que envías, elige Make, Zapier o n8n.
No. Es una ruta documentada, no un conector nativo: guarda tu clave de API de Whatsable en Base44 Secrets y llama a la API de Whatsable desde una función de backend de Base44.
No. Son canales separados. El número asignado de Base44 sigue funcionando para los agentes que lo usan, y tu propio número funciona junto a él.
La API y los webhooks de Whatsable están en Pro y Agency, no en Bulk Message. Las funciones de backend de Base44 también requieren un plan Builder de Base44 o superior.
Más guías de integraciones
Tu propio número, en la misma app de Base44
Conserva la app WhatsApp Business, escríbeles primero a tus clientes con plantillas y deja que el número asignado de Base44 siga funcionando.