Criando Usuários e Agendas via API no eAgenda

Neste tutorial passo a passo, você aprenderá a automatizar a criação de usuários e agendas no eAgenda utilizando sua API REST. Este processo é especialmente útil para:

  • Empresas que precisam cadastrar múltiplos usuários de forma programática
  • Sistemas de integração que exigem criação automática de agendas
  • Desenvolvedores que desejam incorporar o eAgenda em suas aplicações

Tecnologias Utilizáveis

Embora este tutorial utilize Python com a biblioteca requests, você pode adaptar os exemplos para:

  • JavaScript/Node.js (com Axios ou Fetch API)
  • PHP (com cURL ou Guzzle)
  • Java (com HttpURLConnection ou Apache HttpClient)
  • C# (com HttpClient)
  • Outras linguagens que suportem chamadas HTTP

Pré-requisitos

Antes de começar, você precisará de:

  1. Acesso à documentação da API (Página com endpoints e exemplos de uso) → Acesse aqui
  2. Acesso à API do eAgenda (URL base e token de autenticação) → Veja como obter seu token
  3. Slug da conta (identificador único da sua conta no sistema) → Descubra como obter o slug da sua conta

Passo 1: Criando um Usuário via API

Visão Geral

A criação de usuários é feita através do endpoint /users/ com um POST request. O usuário receberá:

  • Um e-mail de confirmação
  • Permissões conforme o profile_type especificado
  • Vinculação automática à conta (account_slug)

Código Python Explicado

import requests

# 1. Configuração inicial
BASE_URL = "https://eagenda.com.br/api/v3"
TOKEN = "seu_token_aqui"  # Substitua pelo seu token real
ACCOUNT_SLUG = "sua_conta"  # Slug da sua conta no eAgenda

# 2. Headers obrigatórios
headers = {
    "Authorization": f"Bearer {TOKEN}",  # Autenticação Bearer Token
    "Content-Type": "application/json"   # Indica que enviamos JSON
}

# 3. Dados do usuário (payload)
user_data = {
    "full_name": "João da Silva",       # Nome completo
    "email": "joao.silva@empresa.com",  # E-mail único
    "password": "SenhaSegura123!",      # Senha forte
    "accounts": [{
        "profile_type": "oper",         # Perfil (oper = operador)
        "is_active": True,              # Usuário ativo
        "account_slug": ACCOUNT_SLUG    # Vincula à conta
    }]
}

# 4. Função para enviar a requisição
def criar_usuario():
    try:
        response = requests.post(
            f"{BASE_URL}/users/",
            headers=headers,
            json=user_data
        )

        if response.status_code == 201:
            print("✅ Usuário criado com sucesso!")
            print("Detalhes:", response.json())
        else:
            print(f"❌ Erro {response.status_code}: {response.text}")

    except Exception as e:
        print(f"⚠️ Falha na requisição: {e}")

# Executa
if __name__ == "__main__":
    criar_usuario()

Possíveis Respostas da API

Status CodeSignificado
201 CreatedUsuário criado com sucesso
400 Bad RequestDados inválidos (ex: e-mail já existe)
401 UnauthorizedToken inválido ou expirado

Passo 2: Criando uma Agenda para o Usuário

Visão Geral

Após criar o usuário, associamos uma agenda a ele usando o endpoint /calendars/. A agenda define:

  • Horários de funcionamento (dias e horários disponíveis)
  • Configurações de agendamento (durações, limites)
  • Vinculação ao usuário responsável (via owner_user)

Código Python Detalhado

import requests

# 1. Configuração inicial da API
BASE_URL = "https://eagenda.com.br/api/v3"
TOKEN = "seu_token_aqui"  # Substitua pelo seu token real
ACCOUNT_SLUG = "sua_conta"  # Slug da sua conta no eAgenda

# 2. Headers obrigatórios
headers = {
    "Authorization": f"Bearer {TOKEN}",  # Autenticação Bearer Token
    "Content-Type": "application/json"   # Indica que enviamos JSON
}

# 3. Dados da agenda (payload)
calendar_data = {
    "calendar_name": "Agenda Dr.João",  # Nome da agenda
    "slug": "drjoao",         # Identificador único
    "is_internal": False,                  # Indica se é uma agenda interna
    "time_config": {
        "opening_hours": [  # Horário de funcionamento
            {"week_day": "1", "opening_time": "09:00", "closing_time": "18:00", "max_people": 1},  # Segunda-feira
            {"week_day": "2", "opening_time": "09:00", "closing_time": "18:00", "max_people": 1},  # Terça-feira
            {"week_day": "3", "opening_time": "09:00", "closing_time": "18:00", "max_people": 1},  # Quarta-feira
            {"week_day": "4", "opening_time": "09:00", "closing_time": "18:00", "max_people": 1},  # Quinta-feira
            {"week_day": "5", "opening_time": "09:00", "closing_time": "18:00", "max_people": 1}   # Sexta-feira
        ],
        "slot_interval": "30",  # Granularidade entre os horários
        "duration": "30",       # Duração padrão de 30 minutos por consulta
        "minimum_notice": 1,      # Agendamento com no mínimo 1 hora de antecedência
        "maximum_notice": 30      # Agendamento com no máximo 30 dias de antecedência
    },
    "online_meeting_platform": "meet",  # Plataforma para reuniões online (Google Meet)
    "max_people": 1,                      # Número máximo de participantes
    "request_email": True,                # Solicitar e-mail do cliente
    "email_required": True,               # E-mail obrigatório
    "request_phone": True,                # Solicitar telefone do cliente
    "phone_required": True,               # Telefone obrigatório
    "appointment_mode": "online",        # Modo de atendimento (online)
    "owner_user": "email10@exemplo.com", # Proprietário da agenda
    "account_slug": ACCOUNT_SLUG           # Conta vinculada à agenda
}

# 4. Função para criar a agenda
def criar_agenda():
    try:
        # Faz a requisição POST para criar a agenda
        response = requests.post(
            f"{BASE_URL}/calendars/",
            headers=headers,
            json=calendar_data
        )
        
        # Verifica se a requisição foi bem-sucedida
        if response.status_code == 201:
            print("✅ Agenda criada com sucesso!")
            print("Detalhes:", response.json())
        else:
            print(f"❌ Erro {response.status_code}: {response.text}")
            
    except Exception as e:
        print(f"⚠️ Falha na requisição: {e}")

# 5. Executa a criação da agenda
if __name__ == "__main__":
    criar_agenda()

Campos Importantes da Agenda

CampoDescriçãoExemplo
business_hoursDefine dias/horários de trabalho[{week_day: "1", opening_time: "09:00"}]
slot_intervalIntervalo entre agendamentos (minutos)"30"
owner_userE-mail do usuário responsável"joao@empresa.com"
online_meeting_platformPlataforma para reuniões"meet" (Google Meet)

Conclusão e Próximos Passos

O que Aprendemos?

✔ Criar usuários programaticamente
✔ Criar e associar agendas a usuários existentes
✔ Configurar horários e regras de agendamento

O que Mais Podemos Fazer?

  • Adicionar serviços à agenda (/services/)
  • Listar agendamentos existentes (/appointments/)

Dúvidas ou Problemas?

Entre em contato com o suporte:
📧 suporte@mupisystems.com.br

Gostou deste tutorial? Deixe seu feedback! 😊

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *