API de Clientes: Cómo Utilizar y Configurar

Esta API (sigla en inglés de Interfaz de Programación de Aplicaciones) permite la integración entre sus aplicaciones con la administración de clientes de Atom. Esta API permite:

  • Crear o Actualizar un cliente.
  • Obtener un listado de clientes.
  • Ver datos de un cliente a través de su ID.
  • Ver datos de un cliente a través de su número de teléfono

Endpoint: Create client - Crear/Actualizar Cliente

Este servicio permite la creación o actualización de un cliente en Atom.

Parámetros

A continuación describimos los parámetros que se deben incluir dentro de la petición de manera obligatoria, y otros que se pueden agregar opcionalmente:

Nombre del Parámetro

Descripción

Tipo de Dato

Requerido

name

Nombre del cliente

string

phone

Número telefónico del cliente. Se debe anteponer el código del país, sin utilizar el signo +

Correcto: 50755667788 ✅

Incorrecto: +50555667788 ❌

Incorrecto: 55667788 ❌

string

email

Email del cliente

string

Opcional. 

optionals

Parámetros adicionales para hacer el mapeo de los campos de información asociados al cliente, los valores se escriben a modo de {key: value}

object

Si

tags

Etiquetas para el cliente

string

Opcional.

 

La petición para realizar la creación de un cliente utilizando la API de AtomChat, se realiza de la siguiente manera:

Tipo de Conexión

Acceso público por Internet

Endpoint

https://us-central1-atomchat-io.cloudfunctions.net/clients

Método

POST

Encabezados

Content-type: application/json

Charset: utf-8

Authorization: Bearer (token público)

Cuerpo

{

    “name”: “nombre_del_cliente”,

    “phone”: “numero_de_telefono”,

    “email”: “email_del_cliente”,

    “optionals”: {

        “option1”: “valor”,

        “option2”: “valor ”,  

        …

    },

   “tags”: [“tag 1”, “tag2”]

}

Respuestas

Las respuestas esperadas para la petición realizada, son las siguientes:

Escenario

Código de Respuesta

Cuerpo de la Respuesta

Cliente nuevo

200

{

"client":"clientID"

}

Token incorrecto

400

{

"context": {

"key": "Authorization",

"label": "headers.authorization",

"value": Bearer

           },

"message": "Cannot find a channel associated with the public token Bearer",

"path": [

      "headers.authorization"

        ],

"type": "Bad format"

}

No se pudo crear el cliente

500

{

message: "Cannot perform the creation of the client at ${new Date()}"

}

No se pudo actualizar el cliente

500

{

message: "Cannot perform the update of the client"

}

No se pudo actualizar el cliente

500

{

message: "Cannot perform the update of the client at ${new Date()}"

}

Endpoint: Client list - Obtener listado de clientes

Este servicio permite obtener un listado de todos los clientes.

Parámetros

A continuación explicamos los parámetros que se deben incluir dentro de la petición de manera obligatoria, y otros que se pueden agregar opcionalmente

Nombre del Parámetro

Descripción

Tipo de Dato

Requerido

page

Indicador de la página sobre la cual se desea obtener los registros. Default: 1

string

NO. Por defecto 1

size

Cantidad de registros a recuperar. Default: 10

string

NO. Por defecto 10

tags

Etiquetas para filtrar, opcionales

string

NO

sort

Orden de los resultados. Valores aceptados: asc | desc. Default: asc

string

NO 

 

La petición para realizar la recepción de listado de clientes utilizando la API de AtomChat, se realiza de la siguiente manera:

Tipo de Conexión

Acceso público por Internet

Endpoint

https://us-central1-atomchat-io.cloudfunctions.net/clients?page={string}&size={string}&sort={string}

Método

GET

Encabezados

Content-type: application/json

Charset: utf-8

Authorization: Bearer (token público)

Respuestas

Las respuestas esperadas para la petición realizada, son las siguientes:

Escenario

Código de Respuesta

Cuerpo de la Respuesta

Listar clientes

200

{

 length: int,

 page: int,

 items: [

        {

        id: string,

        name: string,

        email: string,

        optionals: [clave: valor]

        phone: string,

        tags: [],

        user: {

          id: string,

          name: string

          },

        updatedAt: Date,

        createdAt: Date

        },

    ]

}

No hay lista de clientes

500

{

 message: "Something went wrong while the operation was being performed"

}

Token incorrecto

400

{

"context": {

"key": "Authorization",

"label": "headers.authorization",

"value": Bearer

           },

"message": "Cannot find a channel associated with the public token Bearer",

"path": [

      "headers.authorization"

        ],

"type": "Bad format"

}

Ejemplo de estructura JSON

{

    "page": 1,

    "length": 1,

    "items": [

        {

            "id": "V2EON8A6SPwC2VudgFbp",

            "name": "Silvio Nicole Carballo",

            "email": null,

            "optionals": {

                "texto 3": "Excelente",

                "texto 1": "¡Excelente!",

                "texto 9": "Hola",

                "texto 8": "1",

                "dos": "¡Excelente! 🤩 ",

                "nuevo4": "martillo",

                "Monto": "21",

                "Referido1": "123123",

                "texto 5": "asesor",

                "texto 2": "asesor",

                "referido2": "Silvio"

            },

            "phone": "50588541975",

            "tags": [

                null,

                "test-label-2sss",

                null

            ],

            "user": {

                "id": "qa-sinsa-ni-qchsjn",

                "name": "Develop - Sinsa QA"

            },

            "updatedAt": "2022-04-22T13:26:31.139Z",

            "createdAt": "2022-08-15T22:18:05.683Z"

        }

    ]

}

Endpoint: Get Client by ID - Ver datos de un cliente

Este servicio permite obtener los detalles pertenecientes a un cliente en particular a través de su ID.

La petición para realizar la recepción de los datos de un cliente utilizando la API de AtomChat, se realiza de la siguiente manera:

Tipo de Conexión

Acceso público por Internet

Endpoint

https://us-central1-atomchat-io.cloudfunctions.net/clients?id={clientId}

Método

GET

Encabezados

Content-type: application/json

Charset: utf-8

Authorization: Bearer (token público)

Respuestas

Las respuestas esperadas para la petición realizada, son las siguientes:

Escenario

Código de Respuesta

Cuerpo de la Respuesta

Cliente recuperado

200

{

     id: string,

     name: string,

     email: string,

     optionals: [clave: valor]

     phone: string,

     tags: [],

     user: {

         id: string,

         name: string

     },

     updatedAt: Date,

     createdAt: Date

},

Cliente inexistente

404

{

 message: "Cannot find the client - companyId ${companyId} - phone ${phone}"

}

Token incorrecto

400

{

"context": {

"key": "Authorization",

"label": "headers.authorization",

"value": Bearer

           },

"message": "Cannot find a channel associated with the public token Bearer",

"path": [

      "headers.authorization"

        ],

"type": "Bad format"

}

Error genérico

500

{

    message: "Something went wrong while the operation was being performed

}

Ejemplo de estructura JSON

{

    "id": "V2EON8A6SPwC2VudgFbp",

    "name": "Silvio Nicole Carballo",

    "email": null,

    "optionals": {

        "texto 1": "¡Excelente!",

        "texto 9": "Hola",

        "Monto": "21",

        "texto 5": "asesor",

        "texto 3": "Excelente",

        "Referido1": "123123",

        "nuevo4": "martillo",

        "dos": "¡Excelente! 🤩 ",

        "referido2": "Silvio",

        "texto 8": "1",

        "texto 2": "asesor"

    },

    "phone": "50588541975",

    "tags": [

        null,

        "test-label-2sss",

        null

    ],

    "user": {

        "id": "qa-sinsa-ni-qchsjn",

        "name": "Develop - Sinsa QA"

    },

    "updatedAt": "2022-04-22T13:26:31.139Z",

    "createdAt": "2022-08-15T22:18:05.683Z"

}

Endpoint: Get Client by Phone - Ver datos de un cliente

Este servicio permite obtener los detalles pertenecientes a un cliente en particular  a través de su número de teléfono.

La petición para realizar la recepción de los datos de un cliente utilizando la API de AtomChat, se realiza de la siguiente manera:

Tipo de Conexión

Acceso público por Internet

Endpoint

https://us-central1-atomchat-io.cloudfunctions.net/clients?phone={phoneNumber}

Método

GET

Encabezados

Content-type: application/json

Charset: utf-8

Authorization: Bearer (token público)

Respuestas

Las respuestas esperadas para la petición realizada, son las siguientes:

Escenario

Código de Respuesta

Cuerpo de la Respuesta

Cliente recuperado

200

{

     id: string,

     name: string,

     email: string,

     optionals: [clave: valor]

     phone: string,

     tags: [],

     user: {

         id: string,

         name: string

     },

     updatedAt: Date,

     createdAt: Date

},

Cliente inexistente

404

{

 message: "Cannot find the client - companyId ${companyId} - phone ${phone}"

}

Token incorrecto

400

{

"context": {

"key": "Authorization",

"label": "headers.authorization",

"value": Bearer

           },

"message": "Cannot find a channel associated with the public token Bearer",

"path": [

      "headers.authorization"

        ],

"type": "Bad format"

}

Error genérico

500

{

    message: "Something went wrong while the operation was being performed

}

Ejemplo de estructura JSON

{

    "id": "V2EON8A6SPwC2VudgFbp",

    "name": "Silvio Nicole Carballo",

    "email": null,

    "optionals": {

        "texto 1": "¡Excelente!",

        "texto 9": "Hola",

        "Monto": "21",

        "texto 5": "asesor",

        "texto 3": "Excelente",

        "Referido1": "123123",

        "nuevo4": "martillo",

        "dos": "¡Excelente! 🤩 ",

        "referido2": "Silvio",

        "texto 8": "1",

        "texto 2": "asesor"

    },

    "phone": "50588541975",

    "tags": [

        null,

        "test-label-2sss",

        null

    ],

    "user": {

        "id": "qa-sinsa-ni-qchsjn",

        "name": "Develop - Sinsa QA"

    },

    "updatedAt": "2022-04-22T13:26:31.139Z",

    "createdAt": "2022-08-15T22:18:05.683Z"

}