API de gerenciamento de usuários em massa

Com a API Bulk User Management, é possível usar o conteúdo de um arquivo JSON para criar ou modificar vários usuários em uma única operação.

Não há limite para o número de registros que podem ser enviados, mas é recomendável que as solicitações sejam feitas em lotes menores.

Esse processo também pode ser realizado no portal da plataforma de CCAI seguindo as instruções em Gerenciamento de usuários em massa.

O aplicativo de referência Ferramenta de sincronização em massa de usuários é fornecido para realizar uma sincronização de usuários entre um diretório, como grupos do Google Workspace ou Microsoft Entra ID, com o CCaaS. Esse aplicativo de referência usa a API de gerenciamento de usuários em massa.

Papéis e permissões

  • Use a API Apps criando um api_user.

  • O api_user não tem papéis nem permissões. Portanto, todos os api_users podem realizar bulk_user management.

  • Não é possível definir permissões granulares ao usar api_user. Portanto, o api_user terá acesso a todos os campos de usuário.

Adicionar uma credencial de API

  1. No portal da plataforma CCAI, acesse Configurações > Configurações do desenvolvedor > Gerenciamento de credenciais da API.

  2. Clique em + Adicionar credencial da API. Uma mensagem Adicionar credencial de API será aberta.

  3. Insira um Nome para a credencial.

  4. Clique em Criar.

Usar a API de gerenciamento de usuários em massa

O uso da API de gerenciamento de usuários em massa requer duas chamadas de API. Um faz upload do arquivo JSON e cria o job, e o outro o processa. Você também pode usar chamadas de API opcionais para garantir que seu trabalho seja processado corretamente.

  1. Opcional: recupere o modelo JSON. Isso recupera o modelo mais recente, que inclui outras funções ou equipes criadas desde que você recuperou o modelo anterior. O Google recomenda essa etapa.

  2. Opcional: receba dados de configuração do usuário. Isso recupera uma lista de todos os usuários (ou um único usuário, se você especificar um endereço de e-mail) para espelhar.

  3. Faça upload do arquivo JSON. É possível adicionar ou atualizar um ou vários usuários no arquivo. Anote o ID do job.

  4. Processamento de solicitação do arquivo JSON. Isso inicia o job em massa.

  5. Opcional: faça uma verificação de status. Forneça o ID do job para conferir o status do processamento.

  6. Opcional: recupere uma lista de jobs atualizada. Isso recupera a lista de todos os jobs de gerenciamento de usuários em massa.

  7. Opcional: recupere os registros de erros de esquema. Especifique o ID do job para receber os registros de erros de esquema.

  8. Opcional: recupere erros. Receber erros.

Fazer upload do arquivo JSON

Uso

Fazer upload do arquivo JSON

URL

apps/api/v1/bulk/users/upload

Método

POST / PUT

Solicitação

content-type: multipart/form-data

{
  "id" : {job_id} #optional. Required in case of PUT method.
  "file": {json file}
}

Resposta

Cabeçalho:

Link: http://ujet.co/apps/api/v1/bulk/users_jobs/12345

Corpo

{
  "id": 12345, # job_id
  "status": "created"
  "link": "http://ujet.co/apps/api/v1/bulk/users_jobs/12345"
}

Recuperar modelo JSON

Uso

Modelo

URL

apps/api/v1/bulk/users/template

Método

GET

Solicitação

(Vazio)

Resposta

[
{
"email":"user1@yourcompany.co",
"new_email":user1@yourcompany.cx",
"agent_number":"A-001",
"first_name":"John",
"last_name":"aa",
"status":"Active",
"location":"Mexico",
"max_chat_limit":2,
"max_chat_limit_enabled":0,
"roles": [
{"name":"Admin","value": 0 },
{"name":"Manager","value": 1 },
{"name":"Agent","value": 0 },
{"name":Developer","value": 1 }
]
},
 ...
]

Desativar um usuário

Para desativar um usuário, mude o valor de status para Inactive. Por exemplo, "status":"Inactive".

Solicitar o processamento do arquivo JSON atual

Uso

Solicitar o processamento do arquivo JSON atual

URL

/v1/bulk/users/proceed

Método

POST

Solicitação

{
   "id": 12345  # job_id
}

Resposta

Cabeçalho:

Link: http://ujet.co/apps/api/v1/bulk/users_jobs/12345

Corpo

1{"id": 12345 # job_id3 "status": "valid_scheme",4 "link": "http://ujet.co/apps/api/v1/bulk/users_jobs/12345"5}

Fazer uma verificação de status

Uso

Fazer uma verificação de status

URL

apps/api/v1/bulk/users/jobs/#{job_id}

Método

GET

Solicitação

Variável de caminho: job_id

Resposta

{
    "id": 12345,
    "created_at": "2022-01-07T06:40:34.000Z",
    "process_requested_at": "2022-01-07T06:45:34.000Z",
    "filename": "100row.json",
    "total_rows": 100,
    "affected_rows": 52,
    "failed_rows": 0,
    "status": "in_progress",
    "uploaded_user_name": null,
    "proceed_user_name": null,
    "uploaded_api_user_name": "api_user_name_1",
    "proceed_api_user_name": "api_user_name_2",
    "scheme_errors": []
    "update_errors": []
}

Recuperar a lista de jobs atualizada

Uso

Receber lista de jobs de atualização

URL

apps/api/v1/bulk/users/jobs

Método

GET

Solicitação

{
  "page": 1,
  "per_page": 20
}

Resposta

Cabeçalho

Link: <next link>
Total: 12345
Per-Page: 201

Corpo

[
    {
        "id": 12345,
        "created_at": "2022-01-07T06:21:10.000Z",
        "process_requested_at": "2022-01-07T06:22:25.000Z",
        "filename": "100row.json",
        "total_rows": 100,
        "affected_rows": 52,
        "failed_rows": 0,
        "status": "in_progress",
        "uploaded_user_name": null,
        "proceed_user_name": null,
        "uploaded_api_user_name": "api_user_name_1",
        "proceed_api_user_name": "api_user_name_2",
        "scheme_errors": [],
        "update_errors": []
    },
    ...
]

Observação

A saída é classificada em ordem inversa de job_id para que os dados mais recentes apareçam primeiro.

Recuperar registros de erros de esquema

Uso

Receber registros de erros de esquema

URL

/v1/bulk/users/errors/scheme/#{job_id}

Método

GET

Solicitação

Variável de caminho: job_id

Resposta

content-type: application/json

[
  {
    "message": "Must be a valid email",
    "column": 1,
    "row": null
  },
  {
    "message": "Non-empty string",
    "column": 10,
    "row": 10
  }
]

Recuperar erros

Uso

Receber registros de erros de atualização

URL

/v1/bulk/users/errors/update/#{job_id}

Método

GET

Solicitação

Variável de caminho: job_id

Resposta

content-type: application/json

1[2 {3 "message": "Must be a valid email",4 "column": 1,5 "row": null,6 "error_type": "warning"7 },8 {9 "message": "Non-empty string",10 "column": 10,11 "row": 10,12 "error_type": "error"13 } 14]