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:
- Acesso à documentação da API (Página com endpoints e exemplos de uso) → Acesse aqui
- Acesso à API do eAgenda (URL base e token de autenticação) → Veja como obter seu token
- 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 Code | Significado |
---|---|
201 Created | Usuário criado com sucesso |
400 Bad Request | Dados inválidos (ex: e-mail já existe) |
401 Unauthorized | Token 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
Campo | Descrição | Exemplo |
---|---|---|
business_hours | Define dias/horários de trabalho | [{week_day: "1", opening_time: "09:00"}] |
slot_interval | Intervalo entre agendamentos (minutos) | "30" |
owner_user | E-mail do usuário responsável | "joao@empresa.com" |
online_meeting_platform | Plataforma 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! 😊