Preguntar a la IA
Español ES
Ir a Watbot

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 true si se encuentra el contacto, y false si 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, name y 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 200 y el mensaje Code 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.');
}