Trabalhando com clientes

LEGENDA:

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()

was_in_state(message_id)
verifica se um cliente estava no estado selecionado (bloco). Você pode obter o número do bloco no editor.

days_from_last_message()
determina o número de dias desde a última mensagem do cliente. Criado para verificar se está dentro da janela de 24 horas.

Exemplo:
d = days_from_last_message()

Se mais de 30 dias se passaram desde a última mensagem do cliente, a função retornará o valor 9999.


free***_***client()
desatribui o operador responsável.
Exemplo: free_client()

assign_to_user(email, only_active)
atribui um diálogo a um operador, onde:

  1. email - um parâmetro de string (opcional). Se apenas o email for fornecido, um diálogo será atribuído ao operador especificado, independentemente do seu status atual.
  2. only_active - True ou False (parâmetro opcional). Se definido como True, um diálogo será atribuído ao operador especificado apenas se ele estiver atualmente em turno.

Exemplos:

assign_to_user() - atribui um diálogo a um operador aleatório que está atualmente em turno

assign_to_user('email do operador') - atribui um diálogo ao operador independentemente do seu status

assign_to_user('email do operador', True) - atribui um diálogo ao operador especificado apenas se ele estiver atualmente em turno

distribute_client()
atribui um diálogo ao operador de acordo com as configurações de distribuição automática.
Exemplo: distribute_client()

get_operator()
recupera o email do operador responsável

Exemplo: get_operator()

Pode ser usado para atribuir tarefas a um operador responsável ou para verificar se ele existe. Se não houver operador responsável, retornará None.

get_operator_name()
recupera o nome do operador responsável

Exemplo: get_operator_name()

Pode ser usado para exibir informações ao cliente. Se não houver operador responsável, retornará None. Se o operador não tiver um nome atribuído, retornará seu email.

delete_pended_messages()
exclui todas as mensagens agendadas para o cliente atual. Por padrão, também exclui mensagens criadas pelas setas "Não cancelar" . Para manter as mensagens das setas "Não cancelar" , passe o parâmetro False: delete_pended_messages(False).

set_note(comment)
adiciona um comentário a um diálogo.

Exemplo: set_note('Refazer')

add_unread(count)
marca um diálogo com um cliente como não lido

O parâmetro count pode ser omitido ou definido como 1; neste caso, o diálogo com o cliente mostrará um indicador de +1 mensagem não lida.

Se qualquer outro número for passado, ele será exibido na seção "Clientes" como o número de mensagens não lidas de um cliente.

clear_unread()
marca um diálogo como lido

unsubscribe()
Função para cancelar a inscrição de mensagens do bot. Um exemplo é fornecido neste artigo.
Para o cliente que cancelou a inscrição, um símbolo aparecerá — uma mensagem vermelha com um X.

Importante!

A Calculadora é executada primeiro, e só então a mensagem é enviada.

Portanto, se você precisar enviar uma mensagem final como "Você cancelou a inscrição do bot" ou "Você foi bloqueado" , você deve usar um processo de duas etapas:

  1. Primeiro, envie um bloco contendo a mensagem final.
  2. Em seguida, envie um bloco vazio contendo a função de cancelamento de inscrição/bloqueio.

Se você tentar fazer ambos em um único bloco, a mensagem não será enviada.

Se você colocar a função unsubscribe() na calculadora do mesmo bloco que sua mensagem, a mensagem não será enviada e o sistema exibirá um erro.

block_client()
bloqueia um cliente de enviar mensagens para o bot. Mensagens previamente agendadas do bot também serão canceladas. No entanto, ainda será possível enviar mensagens diretamente para o cliente a partir do diálogo na seção "Clientes"

Um cliente bloqueado terá uma marca — um ícone de cadeado vermelho.

unblock_client()
desbloqueia o cliente. O cliente poderá interagir novamente com o bot e prosseguir pelas cadeias de mensagens.

set_client_name(name)
altera o nome do cliente. Passe o nome do cliente como uma string entre aspas duplas. Você também pode usar uma variável contendo o nome do cliente, por exemplo: set_client_name("João Silva")

get_bind_clients()
uma função sem parâmetros que retorna um array de IDs de clientes vinculados ao cliente atual.

get_current_pipline_id()
uma função sem parâmetros que retorna o ID do funil em que o cliente está atualmente.

Se o negócio do cliente estiver no estágio "não processado", retorna None.

Trabalhando com tarefas

As funções que trabalham com tarefas retornam o status da operação como True ou o ID da tarefa em caso de sucesso. Em caso de falha, retornam False ou None.

MaviBot usa o formato de data "dd.mm.aaaa" e o formato de hora "HH:MM".

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

create_task(email, name, date_srok, description, time_srok) – cria uma tarefa

Parâmetros:\ ! email - email do responsável\ ! name - nome da tarefa\ ! date_srok - data de vencimento, data\ ! description - descrição da tarefa
time_srok - hora de vencimento, hora

update_task(task_id,email, name, date_srok, description, time_srok) - atualiza uma tarefa

Parâmetros:\ ! task_id- ID da tarefa\ ! email - email do responsável\ ! name - nome da tarefa\ ! date_srok - data de vencimento, data\ ! description - descrição da tarefa
time_srok - hora de vencimento, hora

done_task(task_id)- marca uma tarefa como concluída

Parâmetros:\ ! task_id- ID da tarefa

delete_task(task_id) – exclui uma tarefa

Parâmetros:\ ! task_id- ID da tarefa

Atribuir um usuário responsável&#x20

assign_order_to_user(email, order_id) — atribuir um usuário responsável a um negócio

  • email — email do funcionário a ser atribuído como responsável. Obrigatório.
  • order_id — ID do negócio ao qual atribuir o funcionário. Se não especificado, o negócio atual é usado. Opcional.

Obter o email do usuário responsável&#x20

get_order_operator(order_id) — obter o email do usuário responsável por um negócio

  • order_id — ID do negócio para recuperar o usuário responsável. Se não especificado, o negócio atual é usado. Opcional.

Vamos criar uma tarefa para o operador:

Atualizar a data de vencimento e a descrição.

Marcar a tarefa como concluída.

Exclusão de tarefa

task_id=create_task('[email protected]', 'Teste', '22.01.2023', 'tarefa de teste', '08:00') status=delete_task(task_id)

Trabalhando com negócios

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) |

Recuperando o ID do negócio atual

get_order_id() - retorna o estado do negócio.

Criando um novo negócio

create_order(name, budget, description, client_name, phone, email, state_id)
O negócio atualmente ativo no funil, juntamente com suas variáveis, estará disponível apenas em funções relacionadas a negócios e no CRM.

Parâmetros da função: \ ! name - (opcional), o nome do negócio. Se não fornecido, a função se aplica ao negócio ativo atual do cliente.

! budget - (opcional) o valor do negócio. Se não fornecido, aplica-se ao negócio ativo atual.
Se budget não for um número, a função retornará: budget must be a number

description - (opcional), a descrição do negócio.

Parâmetros adicionais para criação de cliente:

client_name - (opcional) string, nome de um novo cliente

phone - (opcional) string, número de telefone de um novo cliente.

email - (opcional) string, endereço de email de um novo cliente.

Para criar um cliente, pelo menos telefone ou email devem ser fornecidos. Se o telefone for fornecido e nenhum cliente com este telefone existir no projeto, um novo será criado.

Se o email for fornecido sem telefone e nenhum cliente com este email existir, um novo será criado.

Parâmetro adicional:

state_id - número, permite definir o estado inicial do negócio na criação

Definir ou atualizar o nome do negócio

set_order_name(name, order_id)

name - ❗obrigatório, string; o nome do negócio

order_id - (opcional) ID do negócio. Se não fornecido, a alteração se aplica ao negócio ativo atual do cliente.

Definir ou atualizar o orçamento do negócio

set_order_budget(budget, order_id)

budget -❗obrigatório, número; o valor do negócio

order_id - (opcional) ID do negócio. Se não fornecido, aplica-se ao negócio ativo atual do cliente.

Para usar order_id corretamente:

  1. Você pode especificá-lo manualmente — obtenha o ID do negócio e passe-o como parâmetro da função se quiser direcionar um negócio específico.

  1. Recupere-o usando a função get_order_id(), porque a variável order_id embutida retorna o valor no formato {client_id}-{order_id}, o que pode causar comportamento incorreto.

Recuperando listas de negócios
((excluindo negócios arquivados, bem-sucedidos ou com falha))

get_active_orders_ids()

Obter uma lista de IDs de negócios bem-sucedidos

get_success_orders_ids()

Obter uma lista de IDs de negócios com falha

get_fail_orders_ids()

Recuperando o valor de uma variável de negócio

get_order_var(order_id, variable)

Parâmetros:

! order_id - ID do negócio

! variable - nome da variável cujo valor você deseja recuperar

Recuperando dados do negócio

get_order_vars(order_id, names)

Parâmetros:

! order_id - ID do negócio

names - um array de nomes de variáveis a serem recuperadas. Se omitido, a função retorna todas as variáveis para o negócio especificado

A função retorna um dicionário contendo as variáveis listadas no array names para o negócio identificado por order_id. Se names não for fornecido, retorna um dicionário com todas as variáveis do negócio especificado.

Adicionando uma variável de negócio

set_order_var(order_id, variable, value)

Parâmetros:

! order_id - ID do negócio

! variable - o nome da variável a ser adicionada ou atualizada em um negócio

Se você quiser alterar os parâmetros "name" ou "description" do negócio, use os nomes de variáveis "name" ou "description" respectivamente.

! value - valor da variável

Adicionando múltiplas variáveis de negócio

set_order_vars(order_id, variables_dict)

Parâmetros:

! order_id - ID do negócio.

! variables_dict - um dicionário de variáveis

Movendo para o próximo estado do funil

move_order_to_next_state(order_id)

Parâmetros:
order_id - ID do negócio. Se não especificado, o negócio ativo atual será movido.
A ordem dos estados do negócio é definida de acordo com a sequência definida no MavibotCRM.

Recuperando o estágio do funil no MavibotCRM

get_state_id(client_id, order_id)
Você também pode copiar o ID do estado do funil diretamente das "Configurações de estado" .

Parâmetros:

order_id - ID do negócio do cliente

Você pode chamar a função com ou sem o parâmetro order_id. Se order_id for omitido, a função retornará o ID do estado do funil para o negócio ativo atual.

Para uso correto de order_id:

  1. Você pode especificá-lo manualmente obtendo o ID do negócio e passando-o como parâmetro da função quando quiser direcionar um negócio específico.
  2. Recupere-o usando a função get_order_id(), porque a variável order_id embutida retorna um valor no formato {client_id}-{order_id}, o que pode causar comportamento incorreto.

Movendo um lead através do funil do MavibotCRM por ID de estado

change_state(state_id, order_id)

Parâmetros:\ ! state_id - ID do estado do funil
order_id ( opcional) - o ID do negócio a ser movido através do funil. Se omitido, o negócio ativo atual será movido.

Obtendo ID do negócio por nome e valor da variável

get_order_id_by_var_value(var_name, var_value, client_id)

Parâmetros:\ ! var_name - nome da variável\ ! var_value - valor da variável;
client_id - (opcional) ID do negócio do cliente; o padrão é o ID do cliente no bot

Obtendo data e hora do negócio mais recente

latest_order_datetime(client_id, dt_fmt)

Parâmetros:
client_id - (opcional) o ID do negócio do cliente; o padrão é o ID do cliente no bot;
df_fmt - (opcional) formato para a data e hora retornadas; o padrão é "%d.%m.%y %H:%M"

Obtendo número de negócios do cliente

count_client_orders(client_id, state_id, get_all, active)

Parâmetros:
client_id - (opcional) o ID do negócio do cliente; o padrão é o ID do cliente no bot;
state_id - (opcional) o ID do estado do negócio no funil;
get_all - (opcional) sinalizador de filtro para o parâmetro active; o padrão é 1 (a filtragem por active está desabilitada);
active - usado apenas quando get_all é 0; filtra negócios ativos; o padrão é 1 (retorna apenas negócios ativos);

Obter contagem de negócios em um estado de negócio específico

get_count_orders(id) - retorna o número de negócios atualmente em um estado de funil específico pelo ID do estado.

A função recebe um único parâmetro:

! id - o ID do estado do negócio.

Exemplo de uso da função:

O ID do estágio pode ser encontrado nas configurações.

Em seguida, você precisa inserir a função na calculadora da seguinte forma:

Ao testar o bot, a resposta do bot consistirá no número de negócios no estado especificado pelo valor passado para a função.

Excluindo um negócio

delete_order(order_id) — exclui um negócio no MaviBotCRM.

order_id - (opcional) o ID do negócio a ser excluído. Se omitido, o negócio mais recente será excluído.

Todas as funções são simples de usar.

Por exemplo, vamos criar um novo negócio e enviar seu número para o cliente:

Você pode obter o ID do negócio ativo atual do cliente usando a função get_order_id(), ou recuperar a lista completa de negócios do cliente usando get_active_orders_ids().

Definindo uma tag de negócio bem-sucedido

set_order_status_success()

Descrição

set_order_status_success(order_id)

Parâmetros:

order_id - o ID do negócio. Se o parâmetro não for especificado, a tag será definida para o negócio ativo atual.

Definindo uma tag de negócio com falha

set_order_status_fail()

Descrição

set_order_status_fail(order_id)

Parâmetros:

order_id - o ID do negócio. Se o parâmetro não for especificado, a tag será definida para o negócio ativo atual.

Definindo uma tag de negócio arquivado

set_order_status_archive()

Descrição

set_order_status_archive(order_id)

Parâmetros:

order_id - o ID do negócio. Se o parâmetro não for especificado, a tag será definida para o negócio ativo atual.

Exemplos

/*Arquivar o negócio ativo atual*/

res_arh = set_order_status_archive()