Trabajar con clientes y CRM

Trabajando con clientes

LEYENDA:

was_in_state() | days_from_last_message() | free_client() | assign_to_user() | distribute_client()| get_operator() | get_operator_name() | delete_pended_messages() | set_note() | add_unread() | clear_unread() | unsubscribe()|block_client() | unblock_client() | set_client_name() | get_bind_clients() | get_current_pipline_id()

chevron-rightDescripciónhashtag

was_in_state(message_id) comprueba si un cliente estuvo en el estado seleccionado (bloque). Puedes obtener el número del bloque desde el editor.

La línea superior del editor de bloques muestra el número del bloque.

days_from_last_message() determina el número de días desde el último mensaje del cliente. Fue creado para comprobar si entra dentro de la ventana de 24 horas.

Ejemplo: d = days_from_last_message()

circle-info

Si han pasado más de 30 días desde el último mensaje del cliente, la función devolverá el valor 9999.

liberar_cliente() desasigna al operador responsable. Ejemplo: free_client()

assign_to_user(email, only_active) asigna un diálogo a un operador, donde:

  1. email - un parámetro de cadena (opcional). Si solo se proporciona el correo electrónico, el diálogo se asignará al operador especificado sin importar su estado actual.

  2. only_active - Verdadero o Falso (parámetro opcional). Si se establece en Verdadero, el diálogo se asignará al operador especificado solo si está actualmente de turno.

Ejemplos:

assign_to_user() - asigna un diálogo a un operador aleatorio que está actualmente de turno

assign_to_user('correo electrónico del operador') - asigna un diálogo al operador sin importar su estado

assign_to_user('correo electrónico del operador', True) - asigna un diálogo al operador especificado solo si está actualmente de turno

distribute_client() asigna un diálogo al operador según la configuración de autodistribución. Ejemplo: distribute_client()

get_operator() recupera el correo electrónico de un operador responsable

Ejemplo: get_operator()

Puede usarse para asignar tareas a un operador responsable o para comprobar si existe. Si no hay un operador responsable, devolverá None.

get_operator_name() recupera el nombre del operador responsable

Ejemplo: get_operator_name()

Puede usarse para mostrar información a un cliente. Si no hay un operador responsable, devolverá None. Si el operador no tiene un nombre asignado, devolverá su correo electrónico.

delete_pended_messages() elimina todos los mensajes programados para el cliente actual. De forma predeterminada, también elimina los mensajes creados por las "No cancelar" flechas. Para conservar los mensajes de las "No cancelar" flechas, pasa el parámetro False: delete_pended_messages(False).

set_note(comment) añade un comentario a un diálogo.

Ejemplo: set_note('Volver a hacer')

add_unread(count) marca un diálogo con un cliente como no leído

El parámetro count puede omitirse o establecerse en 1; en este caso, el diálogo con el cliente mostrará un indicador de +1 mensaje no leído.

Si se pasa cualquier otro número, se mostrará en la "Clientes" sección como el número de mensajes no leídos de un cliente.

clear_unread() marca un diálogo como leído

unsubscribe() Función para darse de baja de los mensajes del bot. Se proporciona un ejemplo en este artículo. Para el cliente dado de baja, aparecerá un símbolo — un mensaje rojo con una cruz.

circle-info

¡Importante!

El La calculadora se ejecuta primero, y solo después se envía el mensaje.

Por lo tanto, si necesitas enviar un mensaje final como "Has sido dado de baja del bot" o "Has sido bloqueado", debes usar un proceso de dos pasos:

  1. Primero, envía un bloque que contenga el mensaje final.

  2. Luego, envía un bloque vacío que contenga la función de darse de baja/bloquear.

Si intentas hacer ambas cosas en un solo bloque, el mensaje no se enviará.

Si colocas la unsubscribe() función en la calculadora del mismo bloque que tu mensaje, el mensaje no se enviará, y el sistema mostrará un error.

block_client() bloquea a un cliente para que no envíe mensajes al bot. Los mensajes programados previamente desde el bot también se cancelarán. Sin embargo, seguirá siendo posible enviar mensajes al cliente directamente desde el diálogo en la "Clientes" sección

Un cliente bloqueado tendrá una marca — un icono de candado rojo.

unblock_client() desbloquea al cliente. El cliente podrá interactuar con el bot nuevamente y continuar con las cadenas de mensajes.

set_client_name(name) cambia el nombre del cliente. Pasa el nombre del cliente como una cadena entre comillas dobles. También puedes usar una variable que contenga el nombre del cliente, por ejemplo: set_client_name("Juan Smith")

get_bind_clients() una función sin parámetros que devuelve un array de IDs de clientes vinculados al cliente actual.

get_current_pipline_id() una función sin parámetros que devuelve el ID del embudo en el que se encuentra actualmente el cliente.

Si el trato del cliente está en la etapa "sin procesar", devuelve None.

Trabajando con tareas

circle-check
circle-info

MaviBot utiliza el formato de fecha "dd.mm.aaaa" y el formato de hora "HH:MM".

create_task() | update_task() | done_task() | delete_task()

chevron-rightDescripciónhashtag

create_task(email, name, date_srok, description, time_srok) – crea una tarea

Parámetros: ! correo electrónico - correo electrónico de la persona responsable ! name - nombre de la tarea ! date_srok - fecha de vencimiento, fecha ! description - descripción de la tarea time_srok - hora de vencimiento, hora

update_task(task_id,email, name, date_srok, description, time_srok) - actualiza una tarea

Parámetros: ! task_id- ID de la tarea ! correo electrónico - correo electrónico de la persona responsable ! name - nombre de la tarea ! date_srok - fecha de vencimiento, fecha ! description - descripción de la tarea time_srok - hora de vencimiento, hora

done_task(task_id)- marca una tarea como completada

Parámetros: ! task_id- ID de la tarea

delete_task(task_id) – elimina una tarea

Parámetros: ! task_id- ID de la tarea

chevron-rightEjemploshashtag

Vamos a crear una tarea para el operador:

Actualiza la fecha de vencimiento y la descripción.

Actualización de la tarea

Marca la tarea como completada.

Marcado de la tarea como completada

Eliminación de la tarea

chevron-rightEjemplo de código para copiarhashtag

task_id=create_task('[email protected]', 'Test', '22.01.2023', 'tarea de prueba', '08:00') status=delete_task(task_id)

Trabajando con tratos

get_order_id() | create_order() | set_order_name() | set_order_budget() | get_active_orders_ids() | get_success_orders_ids() | get_fail_orders_ids() | get_order_var() | get_order_vars() | set_order_var() | set_order_vars() | move_order_to_next_state() | set_order_status_success() | set_order_status_fail(order_id)| get_state_id() | change_state() | get_order_id_by_var_value() | latest_order_datetime() | count_client_orders(), get_count_orders() | delete_order(order_id)

chevron-rightDescripciónhashtag

Obteniendo el ID del trato actual

get_order_id() - devuelve el estado del trato.

Creando un nuevo trato

create_order(name, budget, description, client_name, phone, email, state_id) El trato activo actualmente en el embudo, junto con sus variables, solo estará disponible en las funciones relacionadas con tratos y en el CRM. Parámetros de la función: ! name - (opcional), el nombre del trato. Si no se proporciona, la función se aplica al trato activo actual del cliente.

! budget - (opcional) el valor del trato. Si no se proporciona, se aplica al trato activo actual. Si budget no es un número, la función devolverá: el presupuesto debe ser un número

description - (opcional), la descripción del trato.

Parámetros adicionales para la creación del cliente:

client_name - (opcional) cadena, nombre de un nuevo cliente

phone - (opcional) cadena, número de teléfono de un nuevo cliente.

correo electrónico - (opcional) cadena, dirección de correo electrónico de un nuevo cliente.

Para crear un cliente, debe proporcionarse al menos el teléfono o el correo electrónico. Si se proporciona el teléfono y no existe ningún cliente con este teléfono en el proyecto, se creará uno nuevo.

Si se proporciona el correo electrónico sin teléfono y no existe ningún cliente con este correo, se creará uno nuevo.

Parámetro adicional:

state_id - número, permite establecer el estado inicial del trato al crearlo

Establecer o actualizar el nombre del trato

set_order_name(name, order_id)

name - ❗obligatorio, cadena; el nombre del trato

order_id - (opcional) ID del trato. Si no se proporciona, el cambio se aplica al trato activo actual del cliente.

Establecer o actualizar el presupuesto del trato

set_order_budget(budget, order_id)

budget -❗obligatorio, número; el valor del trato

order_id - (opcional) ID del trato. Si no se proporciona, se aplica al trato activo actual del cliente.

Para usar correctamente order_id:

  1. Puedes especificarlo manualmente: obtén el ID del trato y pásalo como parámetro de la función si quieres dirigirte a un trato específico.

  1. Recupéralo usando la función get_order_id(), porque la variable integrada order_id devuelve el valor en el formato {client_id}-{order_id}, lo que puede causar un comportamiento incorrecto.

Recuperando listas de tratos ((excluyendo tratos archivados, exitosos o fallidos))

get_active_orders_ids()

Obtener una lista de IDs de tratos exitosos

get_success_orders_ids()

Obtener una lista de IDs de tratos fallidos

get_fail_orders_ids()

Recuperando el valor de una variable del trato

get_order_var(order_id, variable)

Parámetros:

! order_id - ID del trato

! variable - nombre de la variable cuyo valor deseas recuperar

Recuperando datos del trato

get_order_vars(order_id, names)

Parámetros:

! order_id - ID del trato

names - un array de nombres de variables a recuperar. Si se omite, la función devuelve todas las variables del trato especificado

La función devuelve un diccionario que contiene las variables enumeradas en el names array para el trato identificado por order_id. Si names no se proporciona, devuelve un diccionario con todas las variables del trato especificado.

Añadiendo una variable al trato

set_order_var(order_id, variable, value)

Parámetros:

! order_id - ID del trato

! variable - el nombre de la variable que se añadirá o actualizará en un trato

circle-exclamation

! value - valor de la variable

Añadiendo múltiples variables al trato

set_order_vars(order_id, variables_dict)

Parámetros:

! order_id - ID del trato.

! variables_dict - un diccionario de variables

Moviéndose al siguiente estado del embudo

move_order_to_next_state(order_id)

Parámetros: order_id - ID del trato. Si no se especifica, se moverá el trato activo actual. El orden de los estados del trato se define según la secuencia establecida en MavibotCRM.

Recuperando la etapa del embudo en MavibotCRM

get_state_id(client_id, order_id) También puedes copiar el ID del estado del embudo directamente desde la "Configuración del estado".

Parámetros:

order_id - ID del trato del cliente

Puedes llamar a la función con o sin el order_id parámetro. Si se omite order_id, la función devolverá el ID del estado del embudo para el trato activo actual.

Para el uso correcto de order_id:

  1. Puedes especificarlo manualmente obteniendo el ID del trato y pasándolo como parámetro de la función cuando quieras dirigirte a un trato específico.

  2. Recupéralo usando la función get_order_id(), porque la variable integrada order_id devuelve un valor en el formato {client_id}-{order_id}, lo que puede causar un comportamiento incorrecto.

Moviendo un lead a través del embudo de MavibotCRM por ID de estado

change_state(state_id, order_id)

Parámetros: ! state_id - ID del estado del embudo order_id ( opcional) - el ID del trato a mover a través del embudo. Si se omite, se moverá el trato activo actual.

Obteniendo el ID del trato por nombre y valor de variable

get_order_id_by_var_value(var_name, var_value, client_id)

Parámetros: ! var_name - nombre de la variable ! var_value - valor de la variable; client_id - (opcional) ID del trato del cliente; por defecto es el ID del cliente en el bot

Obteniendo la fecha y hora del último trato

latest_order_datetime(client_id, dt_fmt)

Parámetros: client_id - (opcional) el ID del trato del cliente; por defecto es el ID del cliente en el bot; df_fmt - (opcional) formato para la fecha y hora devueltas; el valor predeterminado es "%d.%m.%y %H:%M"

Obteniendo el número de tratos del cliente

count_client_orders(client_id, state_id, get_all, active)

Parámetros: client_id - (opcional) el ID del trato del cliente; por defecto es el ID del cliente en el bot; state_id - (opcional) el ID del estado del trato en el embudo; get_all - (opcional) bandera de filtro para el parámetro active; el valor predeterminado es 1 (el filtrado por active está deshabilitado); active - se usa solo cuando get_all es 0; filtra los tratos activos; el valor predeterminado es 1 (devuelve solo tratos activos);

Obtener el recuento de tratos en un estado específico

get_count_orders(id) - devuelve el número de tratos que actualmente están en un estado específico del embudo por ID de estado.

La función toma un solo parámetro:

! id - el ID del estado del trato.

Ejemplo de uso de la función:

El ID de la etapa se puede encontrar en la configuración.

A continuación, debes introducir la función en la calculadora de la siguiente manera:

Al probar el bot, la respuesta del bot consistirá en el número de tratos en el estado especificado por el valor pasado a la función.

Eliminación de un trato

delete_order(order_id) — elimina un trato en MaviBotCRM.

order_id - (opcional) el ID del trato a eliminar. Si se omite, se eliminará el trato más reciente.

chevron-rightEjemploshashtag

Todas las funciones son sencillas de usar. Por ejemplo, vamos a crear un nuevo trato y enviar su número al cliente:

Registro de solicitud del cliente

Puedes obtener el ID del trato activo actual del cliente usando la función get_order_id(), o recuperar la lista completa de los tratos del cliente usando get_active_orders_ids().

Obteniendo el ID del trato activo actual
Obteniendo la lista de tratos activos
chevron-rightEjemplo de código para copiarhashtag

Estableciendo una etiqueta de trato exitoso

set_order_status_success()

set_order_status_success(order_id)

Parámetros:

order_id - el ID del trato. Si el parámetro no se especifica, la etiqueta se establecerá para el trato activo actual.

Estableciendo una etiqueta de trato fallido

set_order_status_fail()

set_order_status_fail(order_id)

Parámetros:

order_id - el ID del trato. Si el parámetro no se especifica, la etiqueta se establecerá para el trato activo actual.

Estableciendo una etiqueta de trato archivado

set_order_status_archive()

set_order_status_archive(order_id)

Parámetros:

order_id - el ID del trato. Si el parámetro no se especifica, la etiqueta se establecerá para el trato activo actual.

Última actualización