Pular para o conteúdo
niadra
Coordenação

Quem está com o cliente agora, entre agentes, pessoas e sistemas, e o mais restritivo vence.

O cliente da sua empresa é atendido por agentes de vários fornecedores, por pessoas em painéis que nenhum agente vê e por rotinas que não chamam ninguém. Cada um pode contatar a mesma pessoa, agir sobre o mesmo objeto ou repetir o que outro já fez. A memória sabe quem está com o cliente, por declaração e por observação, o que já saiu e o que já foi feito, e responde antes de o agente agir: pode agora, espere, não, ou passe para quem detém. Um fato de negócio gera um efeito só: a primeira pergunta reserva a chave, e toda pergunta seguinte com a mesma chave ouve que já foi feito. Quem envia e quem barra é a sua empresa: a decisão vira um token que o seu gateway confere sem falar com a Niadra, e a lista de supressão é o piso que todo fornecedor honra.

Como funciona

Antes de agir, o agente pergunta

exemplo
  • Agente de voz · fornecedor B despedida · atendimento · chave farewell:call-5521 pode agora Efeito reservado. Declare como terminou.
  • Agente de WhatsApp · fornecedor A despedida · a mesma chave, 14h09 não Efeito já feito pelo agente de voz.
  • Agente de cobrança · interno lembrete de fatura · cobrança · saída · WhatsApp espere A cliente está com o agente de voz até 14h22: posse observada no painel da central.
  • Agente de ofertas · fornecedor C oferta · marketing · saída · WhatsApp não A cliente pediu para não receber marketing neste canal. Lista de supressão.

A Niadra responde e registra a decisão. Quem envia é o seu agente; quem barra uma mensagem sem token é o seu gateway.

  • Posse por declaração e por observação: um painel de atendimento que abriu uma sessão humana conta, mesmo que ninguém tenha perguntado. O mais restritivo vence
  • Quatro respostas: pode agora, espere até tal hora, não para esta finalidade, ou passe para quem detém. Uma mensagem que o cliente mandou nunca é negada
  • Um efeito ambíguo nunca é enviado de novo por conta própria: uma tentativa cujo desfecho ninguém sabe fica como está até uma pessoa ou o sistema de registro dizer o que houve
  • Orçamento de contato por finalidade, somado sobre todos os agentes e fornecedores, e a janela do canal: fora dela, só modelo aprovado; em horário de silêncio, o contato espera
  • Mensagem ativa só sai com um token que o seu gateway confere sem falar com a Niadra: assinatura Ed25519, dois minutos de vida, uso único
  • A lista de supressão vale para todo fornecedor, com chaves que só quem já conhece o telefone ou o e-mail consegue casar, e cada fonte aplica a própria cópia, lida a cada 60 segundos
  • Cada nível é útil sozinho: sombra, supressão, pergunta e declaração, despacho com token. Onde o ponto de despacho é de terceiro e não confere token, a cobertura é sombra mais supressão
Uma despedida por conversa, seja qual for o agente que tente primeiro
from niadra import Niadra, phone

def farewell_once(conversation, send):
    key = f"farewell:{conversation.id}"
    decision = conversation.check(
        "farewell", purpose="service", effect_key=key
    )
    if decision.decision != "allow":
        # already said by another agent, or the customer is held
        return False
    send("Thanks for reaching out! Anything else, just call.")
    conversation.declare.effect(key, "done")
    return True

niadra = Niadra(channel="whatsapp")
customer = phone(customer_phone)
with niadra.conversation(
    thread_id, subject=customer, agent_id="closing"
) as conversation, conversation.turn():
    farewell_once(conversation, conversation.agent)

# the suppression list, applied from the local copy
niadra.may_contact(customer, "marketing", channel="whatsapp")
  • Python
  • TypeScript

Trecho de examples/coordination.py do SDK: a primeira pergunta reserva o efeito, o agente envia e declara, e a lista de supressão é aplicada pela cópia local.

O próximo agente já pode chegar sabendo.

Conte o que você está construindo. Quem responde é quem escreve o código.