Trabalhando com clientes e CRM
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()
Descrição
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. Criada para verificar se está dentro da janela de 24 horas.
Exemplo:
d = days_from_last_message()
Se tiverem se passado mais de 30 dias desde a última mensagem do cliente, a função retornará o valor 9999.
livre_cliente() desatribui o operador responsável.\r Exemplo: free_client()
assign_to_user(email, only_active) atribui um diálogo a um operador, onde:
email - um parâmetro string (opcional). Se apenas o e-mail for fornecido, um diálogo será atribuído ao operador especificado независимо de seu status atual.
only_active - True ou False (parâmetro opcional). Se definido como True, um diálogo será atribuído ao operador especificado somente se ele estiver em turno no momento.
Exemplos:
assign_to_user() - atribui um diálogo a um operador aleatório que está em turno no momento
assign_to_user('e-mail do operador') - atribui um diálogo ao operador независимо de seu status
assign_to_user('e-mail do operador', True) - atribui um diálogo ao operador especificado somente se ele estiver em turno no momento
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 e-mail de um operador responsável
Exemplo: get_operator()
Pode ser usada 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 usada 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á o e-mail dele.
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" setas. Para manter mensagens das "setas Não cancelar" setas, passe o parâmetro False: delete_pended_messages(False).
set_note(comment) adiciona um comentário a um diálogo.
Exemplo: set_note('Redo')
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; nesse 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 "Clientes" seção 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 em mensagens do bot. Um exemplo é fornecido neste artigo. Para o cliente desinscrito, aparecerá um símbolo — uma mensagem vermelha com um X.


Importante!
O O Calculador é executado primeiro, e somente depois a mensagem é enviada.
Portanto, se você precisar enviar uma mensagem final como "Você foi desinscrito do bot" ou "Você foi bloqueado", você deve usar um processo em duas etapas:
Primeiro, envie um bloco contendo a mensagem final.
Depois, envie um bloco vazio contendo a função de cancelar inscrição/bloquear.
Se você tentar fazer os dois em um único bloco, a mensagem não será enviada.

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

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

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

unblock_client() desbloqueia o cliente. O cliente poderá interagir com o bot novamente 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("John Smith")
get_bind_clients() uma função sem parâmetros que retorna uma matriz 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á no momento.
Se o negócio do cliente estiver no estágio "não processado", ela retornará 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.
O MaviBot usa o formato de data "dd.mm.aaaa" e o formato de hora "HH:MM".
create_task() | update_task() | done_task() | delete_task()
Descrição
create_task(email, name, date_srok, description, time_srok) – cria uma tarefa
Parâmetros: ! email - e-mail da pessoa 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 - e-mail da pessoa 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
Exemplos
Vamos criar uma tarefa para o operador:

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

Marque a tarefa como concluída.

Exclusão da tarefa

Exemplo de código para copiar
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)
Descrição
Obtendo 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, junto com suas variáveis, estará disponível apenas nas funções relacionadas a negócios e no CRM. Parâmetros da função: ! name - (opcional), o nome do negócio. Se não for fornecido, a função se aplica ao negócio ativo atual do cliente.
! budget - (opcional) o valor do negócio. Se não for fornecido, aplica-se ao negócio ativo atual.\nSe budget não for um número, a função retornará: o budget deve ser um número
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 e-mail de um novo cliente.
Para criar um cliente, é necessário fornecer pelo menos telefone ou e-mail. Se o telefone for fornecido e não existir nenhum cliente com esse telefone no projeto, um novo será criado.
Se o e-mail for fornecido sem telefone e não existir nenhum cliente com esse e-mail, 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 for 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 for fornecido, aplica-se ao negócio ativo atual do cliente.
Para usar order_id corretamente:
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.


Recupere-o usando a função get_order_id(), porque a variável interna order_id 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 malsucedidos))
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 malsucedidos
get_fail_orders_ids()
Recuperando o valor de uma variável do 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 - uma matriz de nomes de variáveis a recuperar. Se omitida, a função retorna todas as variáveis do negócio especificado
A função retorna um dicionário contendo as variáveis listadas na names matriz para o negócio identificado por order_id. Se names não for fornecido, ela retorna um dicionário com todas as variáveis do negócio especificado.
Adicionando uma variável ao negócio
set_order_var(order_id, variable, value)
Parâmetros:
! order_id - ID do negócio
! variable - o nome da variável a adicionar ou atualizar em um negócio
Se você quiser alterar os parâmetros "name" ou "description" do negócio, use os nomes de variável "name" ou "description", respectivamente.
! value - valor da variável
Adicionando várias variáveis ao 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 for especificado, o negócio ativo atual será movido.\nA ordem dos estados do negócio é definida de acordo com a sequência configurada no MavibotCRM.
Obtendo o estágio do funil no MavibotCRM
get_state_id(client_id, order_id) Você também pode copiar o ID do estado do pipeline 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 order_id parâmetro. Se order_id for omitido, a função retornará o ID do estado do pipeline para o negócio ativo atual.
Para uso correto de order_id:
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.
Recupere-o usando a função get_order_id(), porque a variável interna order_id retorna um valor no formato {client_id}-{order_id}, o que pode causar comportamento incorreto.
Movendo um lead pelo 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 mover pelo pipeline. Se omitido, o negócio ativo atual será movido.
Obtendo o 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;\nclient_id - (opcional) ID do negócio do cliente; por padrão, usa o ID do cliente no bot
Obtendo data e hora do negócio mais recente
latest_order_datetime(client_id, dt_fmt)
Parâmetros:\nclient_id - (opcional) o ID do negócio do cliente; por padrão, usa o ID do cliente no bot;\ndf_fmt - (opcional) formato para a data e hora retornadas; o padrão é "%d.%m.%y %H:%M"
Obtendo o número de negócios do cliente
count_client_orders(client_id, state_id, get_all, active)
Parâmetros:\nclient_id - (opcional) o ID do cliente do negócio; por padrão, usa o ID do cliente no bot;\nstate_id - (opcional) o ID do estado do negócio no pipeline;\nget_all - (opcional) sinalizador de filtro para o parâmetro active; o padrão é 1 (a filtragem por ativo está desabilitada);\nactive - usado apenas quando get_all é 0; filtra negócios ativos; o padrão é 1 (retorna apenas negócios ativos);
Obter a contagem de negócios em um estado específico
get_count_orders(id) - retorna o número de negócios atualmente em um estado específico do pipeline 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 no calculador 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 em MaviBotCRM.
order_id - (opcional) o ID do negócio a excluir. Se omitido, o negócio mais recente será excluído.
Exemplos
Todas as funções são simples de usar.\r\nPor exemplo, vamos criar um novo negócio e enviar seu número ao 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 dos negócios do cliente usando get_active_orders_ids().




Definindo uma tag de negócio bem-sucedido
set_order_status_success()
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 malsucedido
set_order_status_fail()
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()
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.
/*Arquivar o negócio ativo atual*/
res_arh = set_order_status_archive()
Atualizado