Elegir un contacto
Una solicitud al bloque «Webhook entrante» no llega de una persona, sino de un servicio externo. Por eso el propio código indica a qué contacto pertenece la solicitud, con una de las funciones de abajo. Solo existen en este bloque; en los demás bloques el contacto ya se conoce.
Reglas comunes a todas las funciones:
- El contacto se busca solo entre los contactos de este bot. Los contactos eliminados no se encuentran.
- Devuelven
truesi se encuentra el contacto, yfalsesi no. - Solo se puede llamar a una función por solicitud, y una sola vez. Una segunda llamada, aunque sea a otra función, termina el código con un error, y el bloque responde con el código
422. - El código debe contener al menos una de estas funciones. Sin ella, el bloque no ejecuta el código y responde con
422. - Una vez encontrado el contacto, el código puede usar sus variables integradas, sus variables y sus etiquetas. Antes de eso, las variables del contacto están vacías, y referirse a
id,namey otros datos del contacto detiene el código con un error. - Si no se encuentra el contacto o no se llamó a ninguna función, el código se ejecuta pero no guarda nada: no se escriben variables, etiquetas ni variables globales, no se envían mensajes, y ni el salto ni la conexión «Continuar» se activan. El bloque responde con
200y el mensajeCode executed without setting contact.
setContactById
setContactById(id)
Encuentra al contacto por su ID en la plataforma.
| Parámetro | Tipo | Qué pasar |
|---|---|---|
id |
Un número o una cadena de dígitos | El ID del contacto. En un flujo puedes obtenerlo con la plantilla {{ id }} |
if (setContactById(request.query.contact_id)) {
setContactVariable('payment', 'received');
sendMessage('Pago recibido, empezamos a preparar tu ramo.');
}
Para que el servicio externo conozca el ID, pásaselo de antemano: por ejemplo, en el enlace de pago o con un bloque «Solicitud HTTP».
setContactByTelegramId
setContactByTelegramId(id)
Encuentra al contacto por el ID de la persona en Telegram.
| Parámetro | Tipo | Qué pasar |
|---|---|---|
id |
Un número o una cadena de dígitos | El ID del usuario en Telegram, el mismo que en la variable telegram_id |
var message = request.data.message;
if (message && message.from && setContactByTelegramId(message.from.id)) {
setContactTag('wrote_in_group');
}
setContactByMaxId
setContactByMaxId(id)
Encuentra al contacto por el ID de la persona en MAX.
| Parámetro | Tipo | Qué pasar |
|---|---|---|
id |
Un número o una cadena de dígitos | El ID del usuario en MAX, el mismo que en la variable max_id |
if (setContactByMaxId(request.data.user_id)) {
sendMessage('El repartidor va de camino.');
}
setContactByVkId
setContactByVkId(id)
Encuentra al contacto por el ID de la persona en VK.
| Parámetro | Tipo | Qué pasar |
|---|---|---|
id |
Un número o una cadena de dígitos | El ID del usuario en VK, un número sin id al principio |
if (setContactByVkId(request.data.vk_user_id)) {
setContactTag('left_review');
}
setContactByViberId
setContactByViberId(id)
Encuentra al contacto por el ID de la persona en Viber.
| Parámetro | Tipo | Qué pasar |
|---|---|---|
id |
Cadena | El ID del usuario en Viber, una cadena de letras, dígitos y símbolos; no lo conviertas en número |
if (setContactByViberId(request.data.viber_id)) {
sendMessage('Tu pedido se entregó para su reparto.');
}