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

chevron-rightDescriçãohashtag

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

A linha superior do editor de blocos exibe o número do bloco.

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

circle-info

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:

  1. 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.

  2. 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.

circle-info

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:

  1. Primeiro, envie um bloco contendo a mensagem final.

  2. 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

circle-check
circle-info

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

chevron-rightDescriçãohashtag

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

chevron-rightExemploshashtag

Vamos criar uma tarefa para o operador:

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

Atualização da tarefa

Marque a tarefa como concluída.

Marcação da tarefa como concluída

Exclusão da tarefa

chevron-rightExemplo de código para copiarhashtag

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)

chevron-rightDescriçãohashtag

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:

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

circle-exclamation

! 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:

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

chevron-rightExemploshashtag

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:

Registro de solicitação do 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().

Recuperando o ID do negócio ativo atual
Recuperando a lista de negócios ativos
chevron-rightExemplo de código para copiarhashtag

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.

Atualizado