CRM Zen
Calendário (Entrada)
Calendário (Saída)

Integração de Calendário (Entrada) Versão 1.0


Introdução

Esta API integra os eventos do sistema do cliente com os eventos do CRM Zen. Quando houver alguma ação no sistema do cliente referente aos eventos, ao chamar esta API, os dados são incluídos no CRM Zen.

Requisições

A url e o token são gerados na área de Integração do Zen (No topo do CRM Zen, clique no ícone de engrenagem e depois selecione Integração).
Todas as requisições devem conter o parâmetro token (na querystring).
Os dados são uma string JSON válida. Ver modelos mais à frente.

Obs.: O JSON deve ser encodado em UTF-8

Obs.: O token NÃO deve ser divulgado publicamente em hipótese alguma

Exemplo de requisição com AJAX:

	
    $.ajax({
        url:'{URL}?token={TOKEN}',
        type: 'POST',
        data: JSON.parse({DADOS}),
        complete: function(retorno){
            //RETORNO (VER MENSAGENS DE RETORNO PADRÃO)
        }
    })
    


Exemplo de requisição com PHP:

	
    $ch = curl_init();
    $url = "{URL}?token={TOKEN}";
    curl_setopt($ch, CURLOPT_URL,$url);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(json_decode({DADOS})));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $retorno = curl_exec($ch); //VER MENSAGENS DE RETORNO PADRÃO
    curl_close($ch);
    


Respostas

Todas as respostas estarão no formato JSON.
De modo geral, respostas bem sucedidas retornarão código HTTP 200 OK.


Erros

Obs.: Caso ocorra alguma falha na requisição mantenha uma fila e tente novamente.

Na ocorrência de erros, a resposta será da seguinte forma:

	
    {
    	"Erro" : "Código",
        "Mensagem" : "Descrição do erro"
     }
    


Mensagens de retorno

200 OK
Descrição do Erro
Sucesso.

400 Bad Request
Descrição do Erro
JSON obrigatório.
JSON Incompleto.
Erro na estrutura do JSON, JSON Inválido.
Requisição inválida (Ação inválida. Ações aceitas: Inserir/Editar/Excluir.).
Dados Inválidos (Avisos).
Evento não encontrado para edição/exclusão

401 Unauthorized
Descrição do Erro
Token obrigatório.
Token inválido.

429 Too Many Requests
Descrição do Erro
Você excedeu o número de requisições. Sua última requisição foi em "YYYY-mm-dd H:i:s". Sua próxima requisição estará disponível em "YYYY-mm-dd H:i:s". Obs.: O tempo de espera para a próxima requisição é de 5 segundos.

500 Internal Server Error
Descrição do Erro
Ocorreu um erro interno no servidor. Tente novamente.


Obs.: Mesmo não usando todos os parâmetros de cada requisição, é importante não removê-los.


Obter lista completa de status

STRING JSON Padrão para fazer a requisição da lista de status:
Ver Modelo


STRING JSON Padrão de resposta com a lista de status:
Ver Modelo



Obter lista completa de categorias

STRING JSON Padrão para fazer a requisição da lista de categorias:
Ver Modelo


STRING JSON Padrão de resposta com a lista de categorias:
Ver Modelo



Obter lista completa de salas

STRING JSON Padrão para fazer a requisição da lista de salas:
Ver Modelo


STRING JSON Padrão de resposta com a lista de salas:
Ver Modelo



Inserir evento

STRING JSON Padrão para inclusão de evento:
Ver Modelo


Obs.: Cada requisição recebe uma string JSON com dados de somente um evento.

Obs2.: O código de integração do evento deve ser único.

Obs3.: O nó Categoria pode conter até 50 itens

Obs4.: O nó Contatos Associados pode conter até 30 itens

Obs5.: O nó Notas Vinculadas pode conter até 50 itens

Obs6.: Caso a sala, status e/ou categoria não exista, será criada. Use a requisição de listagem para verificar.

Obs7.: Uma nota só pode ser vinculada à um evento.


Editar evento

STRING JSON Padrão para edição de evento:
Ver Modelo


Obs.: Cada requisição recebe uma string JSON com dados de somente um evento.

Obs2.: Caso exista mais de um evento com o mesmo código de integração, os mesmos serão editados.

Obs3.: O nó Categoria pode conter até 50 itens

Obs4.: O nó Contatos Associados pode conter até 30 itens

Obs5.: O nó Notas Vinculadas pode conter até 50 itens

Obs6.: Caso a sala, status e/ou categoria não exista, será criada. Use a requisição de listagem para verificar.

Obs7.: Uma nota só pode ser vinculada à um evento.

Parâmetros (Inserir e Editar)

Parâmetro Tipo Tamanho Descrição
Acao String 10 Ação desejada (Inserir/Editar) (Obrigatório)
Compartilhamento String 15.000 Emails de usuários que poderão ver o evento. Separados por vírgula.
(150 caracteres cada email)
Caso esteja vazio, o compartilhamento será com todos os usuários do sistema
Integracao String 50 Código de Integração do evento (Obrigatório)
Titulo String 100 Título do evento (Obrigatório)
Data_Inicial String 10 Data inicial do evento (Se vazio, será gravado como a data de envio)
Data_Final String 10 Data final do evento (Se vazio, será gravado como a data de envio)
Aniversario String 1 0 (Não é aniverário) (Padrão: 0)
1 (É aniversário)
Hora_Inicial String 8 Hora inicial do evento (Padrão: 8:00)
Hora_Final String 8 Hora final do evento (Padrão: 30 minutos a mais da Hora Inicial)
Lembrete->Quantidade Inteiro   Exemplo: 15 (15 dias)
Lembrete->Tipo String 7 Tipos aceitos: minutos, horas, dias, semanas
Lembrete->Aviso_Sonoro String 1 1 = Criar aviso sonoro no desktop para todos os usuários que podem ver o evento
0 = Não criar aviso sonoro
Local String 256 Local do evento
Sala->Nome String 50 Nome da sala
Sala->Codigo String 50 Código da sala
Categoria->Nome String 100 Nome da Categoria
Categoria->Codigo String 50 Código da Categoria
Status->Nome String 70 Status do evento
Status->Codigo String 50 Código do Status
Recorrencia->Repetir String 12 Tipos aceitos: nunca, diariamente, semanalmente, mensalmente, anualmente. (Padrão: nunca)
Recorrencia->Ate String 10 Data final da recorrência
Contatos_Associados->Integracao String 50 Códigos de integração dos contatos associados ao evento
Observacao String 1000 Observação
Tag String 1000 Tags separadas por vírgula e com 50 caracteres cada
Notas_Vinculadas->Integracao String 50 Códigos de integração das notas associadas ao evento



Excluir evento

STRING JSON Padrão para exclusão de evento:
Ver Modelo


Obs.: Cada requisição recebe uma string JSON com dados de somente um evento.

Obs2.: Caso exista mais de um registro com o mesmo código de integração, os mesmos serão excluídos.


Parâmetros (Excluir)

Parâmetro Tipo Tamanho Descrição
Acao String 10 Ação desejada (Excluir) (Obrigatório)
Integracao String 50 Código de Integração do evento (Obrigatório)