# Coordenação: quem está com o cliente agora, e um efeito só por fato de negócio | Niadra

> Antes de agir, o agente pergunta: quem está com o cliente, entre agentes, pessoas e sistemas; o que já foi feito; se pode contatar agora. Um fato de negócio gera um efeito só, a lista de supressão vale para todo fornecedor, e mensagem ativa só sai com um token que o seu gateway confere sem falar com a Niadra.

URL: https://niadra.com/produtos/coordenacao

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.

[Falar com a gente](/enterprise)[Ler na documentação(abre docs.niadra.com)](https://docs.niadra.com/concepts/coordination)

## Como funciona

### Antes de agir, o agente pergunta

exemplo

Quem perguntaO que quer fazerResposta

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

### Na documentação

-   [Coordenação(abre docs.niadra.com)](https://docs.niadra.com/concepts/coordination)
-   [Gateways e o token de contato(abre docs.niadra.com)](https://docs.niadra.com/guides/gateways)
-   [Perguntar antes de agir, na referência da API(abre docs.niadra.com)](https://docs.niadra.com/api/coordination-check)
-   [Sinais e restrições: o que o cliente quer e recusa(abre docs.niadra.com)](https://docs.niadra.com/concepts/signals)

## Uma memória, treze produtos

Conectar

O que entra na memória

-   [SistemasOs eventos que os seus sistemas já emitem, ligados ao cliente certo.](/produtos/sistemas)

SDK, API e MCP

Qualquer agente se liga à memória com três chamadas, em Python, TypeScript, HTTP ou MCP, com adaptador pronto para os frameworks de voz e de agentes mais usados.

[Ver a documentação(abre docs.niadra.com)](https://docs.niadra.com)

Lembrar

O que a memória sabe

-   [MemóriaO que foi dito e feito, com data, origem e evidência.](/produtos/memoria)
-   [IdentidadePessoas, empresas e parceiros, reconhecidos em qualquer canal.](/produtos/identidade)
-   [PadrõesO que cada cliente repete, calculado do histórico e entregue a todo agente.](/produtos/padroes)
-   [EstadoO que vale agora para cada cliente, com a idade e a fonte de cada valor.](/produtos/estado)

Entregar

O que cada agente recebe

-   [ContextoO que cada agente precisa saber antes de começar.](/produtos/contexto)
-   [HistóricoTudo o que já aconteceu, para o agente consultar.](/produtos/historico)
-   [AvisosUm webhook assinado para o seu sistema na hora em que algo acontece.](/produtos/avisos)
-   [AfirmaçãoO que o agente pode afirmar, e a conferência do que ele afirmou, sem modelo a mais.](/produtos/afirmacao)
-   CoordenaçãoVocê está aquiQuem está com o cliente agora e o que já foi feito, antes de um agente agir.

Governar

O que o seu time controla

-   [MediçãoSe cada agente usou o contexto que recebeu.](/produtos/medicao)
-   [RegistroPor que o agente fez o que fez, turno a turno, e o replay no seu CI.](/produtos/registro)
-   [ConsoleQuem leu o quê, revisão, exportação e apagamento.](/produtos/console)
