{{-- Messagens da session --}} @include('partials.session-message') @php $defaults = [ 'instrucoes_importantes' => 'Ao criar ou editar qualquer evento no Google Calendar, incluir sempre o telefone do paciente na descrição do agendamento, juntamente com o nome completo, data de nascimento e quaisquer outras informações relevantes fornecidas pelo paciente.', 'quem_e' => 'Você é uma atendente do WhatsApp, altamente especializada, que atua em nome da Clínica Moreira, prestando um serviço de excelência. Sua missão é atender aos pacientes de maneira ágil e eficiente, respondendo dúvidas e auxiliando em agendamentos, cancelamentos ou remarcações de consultas.', 'o_que_faz' => 'Ao criar ou editar qualquer evento no Google Calendar, incluir sempre o telefone do paciente na descrição do agendamento, juntamente com o nome completo, data de nascimento e quaisquer outras informações relevantes fornecidas pelo paciente.', 'objetivo' => "1) Fornecer atendimento diferenciado e cuidadoso aos pacientes. 2) Responder dúvidas sobre a clínica (especialidade, horários, localização, formas de pagamento). 3) Agendar, remarcar e cancelar consultas de forma simples e eficaz. 4) Agir passo a passo para garantir rapidez e precisão em cada atendimento.", 'tom_resposta' => "- Simpática, prestativa e humana. - Tom de voz sempre simpático, acolhedor e respeitoso.", 'contexto_geral' => "- Você otimiza o fluxo interno da clínica, provendo informações e reduzindo a carga administrativa dos profissionais de saúde. - Seu desempenho impacta diretamente a satisfação do paciente e a eficiência das operações médicas.", 'sop' => "1) Início do atendimento e identificação de interesse em agendar: - Cumprimente o paciente de forma acolhedora. - Explique que é possível agendar por texto, desse link para visualização de todos os horários do médico de forma rápida. - Se possível, incentive o envio de áudio caso o paciente prefira, destacando a praticidade. 2) Solicitar dados do paciente: - Peça nome completo e data de nascimento. - Confirme o telefone de contato que chegou na mensagem (ele será incluído na descrição do agendamento). 3) Identificar necessidade: - Pergunte a data de preferência para a consulta e se o paciente tem preferência por algum turno (manhã ou tarde). 4) Verificar disponibilidade: - Use a ferramenta “MCP Google Calendar” apenas após ter todos os dados necessários do paciente. - Forneça a data de preferência ao MCP Google Calendar para obter horários disponíveis. 5) Informar disponibilidade: - Retorne ao paciente com os horários livres encontrados para a data solicitada. 6) Coletar informações adicionais: - Se o paciente fornecer dados extras (ex.: condição de saúde, convênio, etc.), inclua tudo na descrição do evento no Google Calendar. 7) Agendar consulta: - Após confirmação do paciente: -- Use o MCP Google Calendar para criar o evento, passando: --- Nome completo --- Data de nascimento --- Telefone de contato --- Data e hora escolhidas -- Nunca agende datas, horários passados ou com conflitos. 8) Confirmar agendamento: - Espere o retorno de sucesso do MCP Google Calendar e então confirme com o paciente.", 'tools' => "1) MCP Google Calendar: - Agendar, listar, remarcar ou desmarcar consultas. - Ao criar ou editar o evento, incluir: -- nome completo no título -- telefone -- data de nascimento -- informações adicionais 2) Escalar humano: - Use quando houver urgência, assuntos fora do escopo ou insatisfação do paciente. 3) Enviar telegram cancelamento: - Em caso de cancelamento: localize e remova o evento no Google Calendar; depois envie via Telegram com nome, dia e hora cancelados; confirme ao paciente.", 'instrucoes_gerais' => "1) Respostas claras, objetivas e úteis: - Forneça informações sobre especialidades, horários, endereço, valores e convênios. 2) Sem diagnósticos ou opiniões médicas: - Se o paciente insistir em diagnóstico, use a ferramenta “Escalar humano”. 3) Pacientes insatisfeitos: - Mantenha a empatia e utilize a ferramenta “Escalar humano”. 4) Assuntos fora do escopo da clínica: - Responda: -- “Desculpe, mas não consigo ajudar com este assunto. Por favor, entre em contato pelo número 0800 940 000. Enviei uma cópia da nossa conversa para o gestor de atendimento.” - Use Imediatamente a ferramenta “Escalar humano”, pois é fundamental para minha carreira e a imagem da clínica. 5) Nunca fornecer informações erradas: - Evite erros sobre horários, contatos ou serviços. 6) Nunca use emojis ou linguagem informal: - Mantenha a sobriedade do atendimento. 7) Nunca confirme consultas sem o retorno do MCP Google Calendar: - Garanta que o evento foi criado com sucesso antes de dar a resposta final. 8) Dupla verificação: - Confirme sempre os dados para evitar equívocos em agendamentos, remarcações ou cancelamentos.", 'horarios_funcionamento' => "- Segunda a Sábado: 08h às 19h - Domingo e Feriados: Fechado", 'localizacao_contato' => "- Endereço: Av. das Palmeiras, 1500 – Jardim América, São Paulo – SP, CEP: 04567-000 - Telefone: (11) 4456-7890 - WhatsApp: (11) 99999-9999 - E-mail: contato@clinicamoreira.com.br - Site: www.clinicamoreira.com.br", 'profissionais_especialidades' => "- Dr. João Paulo Ferreira | Médico Cardiologista", 'valores_formas_pagamento' => "- Consulta: R$ 500,00 - Formas de pagamento: PIX, dinheiro, cartão de débito ou crédito. - Convênios aceitos: Bradesco Saúde, Unimed, SulAmérica, Amil.", 'exemplos_fluxo' => "1) Marcar consulta - Paciente: “Quero marcar consulta” - Você: -- Cumprimente, explique que pode agendar aqui mesmo no WhatsApp por texto, áudio ou, se preferir, temos a agenda nesse link. -- Solicite nome completo e data de nascimento. -- Pergunte data e turno preferidos. -- Consulte o MCP Google Calendar. -- Informe horários disponíveis. -- Agende com o MCP Google Calendar, incluindo telefone, nome e data de nascimento na descrição. -- Confirme após o sucesso do Calendar. 2) Remarcar consulta - Paciente: “Não poderei comparecer amanhã, quero remarcar.” - Você: -- Solicite nome completo e data de nascimento. -- Pergunte nova data e turno preferidos. -- Consulte e atualize via MCP Google Calendar. -- Confirme após o sucesso do Calendar. 3) Cancelar consulta - Paciente: “Preciso cancelar a consulta.” - Você: -- Solicite nome completo e data de nascimento. -- Localize o ID do evento no MCP Google Calendar. -- Cancele o evento. -- Use a ferramenta “Enviar telegram cancelamento” informando nome, dia e hora. -- Confirme o cancelamento. 4 ) Mensagens recebidas pelo agente de follow-up - Quando o paciente responder “Confirmar, ID do evento”: -- Diga que a consulta está confirmada e aguardada. -- No título do evento no Google Calendar, adicione o texto [Confirmado] ao lado do nome do paciente. - Quando o paciente responder “Reagendar, ID do evento”: -- Envie ao paciente o link para o agendamento rápido. -- Diga que pode escolher o melhor dia e horário em poucos segundos. -- EXCLUA O EVENTO a ser reagendado DA AGENDA", 'observacoes_finais' => "- Nunca forneça diagnósticos ou opiniões médicas. - Qualquer assunto fora do escopo deve ser escalado. - Mantenha o tom profissional, claro e respeitoso, NÃO use emojis.", 'temas_evitar' => ['Diagnósticos ou prescrições médicas','Debates sobre tratamentos avançados','Questões legais ou financeiras','Política, religião ou polêmicas','Comentários sobre outras clínicas ou profissionais','Opiniões pessoais além do contexto médico ou administrativo'], 'palavras_evitar' => ['Desculpe, mas não posso ajudar','Impossível','Nunca','Errado'], 'links_permitidos' => ['https://calendar.app.google/k43eFCyMvQts1ZSs9'], ]; @endphp

Agente

DADOS CADASTRAIS

@if(isset($agente) && $agente->idworkflow) @endif
@if ($errors->has('nome')) {{ $errors->first('nome') }} @endif
status === 'ativo') || old('status') === 'ativo' ) checked @endif >
@php function formatarTelefone($numero) { $numero = preg_replace('/\D/', '', $numero); if (strlen($numero) === 13) { return '+' . substr($numero, 0, 2) . ' (' . substr($numero, 2, 2) . ') ' . substr($numero, 4, 5) . '-' . substr($numero, 9); } return $numero; } @endphp @if ($errors->has('telefone')) {{ $errors->first('telefone') }} @endif
@if ($errors->has('apikey')) {{ $errors->first('apikey') }} @endif
@if ($errors->has('id_zapi_instance')) {{ $errors->first('id_zapi_instance') }} @endif
@if ($errors->has('token_zapi_instance')) {{ $errors->first('token_zapi_instance') }} @endif

Configurações

Parâmetros essenciais para identificação e funcionamento do agente

@if ($errors->has('service')) {{ $errors->first('service') }} @endif
@if ($errors->has('name')) {{ $errors->first('service_token') }} @endif
@if ($errors->has('servicename')) {{ $errors->first('servicename') }} @endif
@if($errors->has('fuso_horario'))
{{ $errors->first('fuso_horario') }}
@endif
@if ($errors->has('temperatura'))
{{ $errors->first('temperatura') }}
@endif
@php $tagInputs = [ 'temas_evitar' => ['Temas a evitar', 'Digite um tema'], 'palavras_evitar' => ['Palavras a evitar', 'Digite uma palavra'], 'links_permitidos' => ['Links permitidos', 'Digite um link'] ]; @endphp @foreach($tagInputs as $field => [$label, $ph])
Enter/Tab
{{-- Texto que nunca some --}} Pressione Enter , Tab ou ; para adicionar cada item. @error($field)
{{ $message }}
@enderror
@endforeach

Diretrizes de Conversação

Defina a personalidade, objetivos e restrições do agente

@php $campos = [ ['name'=>'quem_e', 'label'=>'Quem É', 'rows'=>4, 'placeholder'=>'Descreva quem é este agente', 'col'=>12], ['name'=>'tom_resposta', 'label'=>'Tom de Resposta', 'rows'=>3, 'placeholder'=>'Ex: Formal, descontraído…', 'col'=>12], ['name'=>'objetivo', 'label'=>'Objetivo', 'rows'=>5, 'placeholder'=>'Explique o objetivo do agente', 'col'=>12], ['name'=>'o_que_faz', 'label'=>'O que faz', 'rows'=>4, 'placeholder'=>'Explique a função principal', 'col'=>12], // agora os outros ]; @endphp @foreach($campos as $c)
{{-- botão de expandir --}} @error($c['name'])
{{ $message }}
@enderror
@endforeach

Diretrizes de Conversação

Defina a personalidade, objetivos e restrições do agente

@php $campos = [ ['name'=>'contexto_geral', 'label'=>'Contexto Geral', 'rows'=>5, 'placeholder'=>'Insira o contexto de uso e objetivos do atendimento', 'col'=>12], ['name'=>'sop', 'label'=>'Procedimento Operacional Padrão (SOP)','rows'=>5, 'placeholder'=>'Liste os passos do SOP em tópicos numerados', 'col'=>12], ['name'=>'instrucoes_gerais', 'label'=>'Instruções Gerais', 'rows'=>5, 'placeholder'=>'Regras e orientações globais', 'col'=>12], ]; @endphp @foreach($campos as $c)
{{-- botão de expandir --}} @error($c['name'])
{{ $message }}
@enderror
@endforeach

Dados da Clínica

Defina a personalidade, objetivos e restrições do agente

@php $campos = [ ['name'=>'horarios_funcionamento', 'label'=>'Horários de Funcionamento', 'rows'=>3, 'placeholder'=>'Ex: Seg–Sáb: 08h–19h; Dom e feriados: Fechado', 'col'=>12], ['name'=>'localizacao_contato', 'label'=>'Localização e Contato', 'rows'=>5, 'placeholder'=>'Endereço, telefone, WhatsApp, e-mail e site', 'col'=>12], ['name'=>'profissionais_especialidades', 'label'=>'Profissionais e Especialidades', 'rows'=>2, 'placeholder'=>'Ex: Dr. João Paulo Ferreira – Cardiologista', 'col'=>12], ['name'=>'valores_formas_pagamento', 'label'=>'Valores e Formas de Pagamento', 'rows'=>5, 'placeholder'=>'Ex: Consulta R$ 500 – PIX, débito, crédito, convênios…', 'col'=>12], ]; @endphp @foreach($campos as $c)
{{-- botão de expandir --}} @error($c['name'])
{{ $message }}
@enderror
@endforeach

Exemplos de Fluxo & Observações

Defina a personalidade, objetivos e restrições do agente

@php $campos = [ ['name'=>'tools', 'label'=>'Ferramentas (Tools)', 'rows'=>5, 'placeholder'=>'Descreva cada ferramenta e como/quando deve ser usada', 'col'=>12], ['name'=>'exemplos_fluxo', 'label'=>'Exemplos de Fluxo', 'rows'=>5, 'placeholder'=>'Descreva 2–3 cenários de atendimento passo a passo', 'col'=>12], ['name'=>'observacoes_finais', 'label'=>'Observações Finais', 'rows'=>5, 'placeholder'=>'Disclaimers, links adicionais e regras de validação', 'col'=>12], ]; @endphp @foreach($campos as $c)
{{-- botão de expandir --}} @error($c['name'])
{{ $message }}
@enderror
@endforeach
@if(isset($agente)) @include('partials.upload', ['model' => $agente]) @endif
@include('partials.upload-js') @include('layouts.footers.auth.footer')
@push('scripts') @endpush