API de Consulta de Datos

Perspectiva general

La API de datos de IntelePeer es un servicio que ayuda a recuperar datos de llamadas, mensajes y aplicaciones. El archivo que se obtiene de la consulta contiene el conjunto de datos que usted solicitó. Hay algunos pasos para llegar a ese archivo (le mostraremos cómo hacerlo) pero una vez que lo tenga, el archivo puede ayudarle con:

 

  • La solución de problemas generales
  • La agilización de sus procesos
  • El análisis del comportamiento y experiencia de cliente
  • La creación de nuevas soluciones para satisfacer a sus clientes
  • El ajuste de los SmartFlows existentes a la experiencia del cliente
 
Secuencia
  1. Las solicitudes GET o HEAD de la ruta Q recuperan y devuelven los campos disponibles a través de la API.  
  2. Diseñe una consulta utilizando los campos devueltos del paso 1.
  3. Envíe una solicitud utilizando el método POST en la ruta Q con la consulta en el cuerpo de la solicitud. Se devuelve un GUID, que se utiliza como referencia en futuras llamadas. 
    • Limite los resultados a una sesión específica utilizando el comando scope.
    • Una session es un concepto de interacción con SmartFlows, por ejemplo, ejecución de un flujo.
  4. La consulta se ejecuta. 
  5. Compruebe el estatus de la consulta utilizando una llamada GET en la ruta Q/{guid}/status.
  6. Una vez que la consulta tenga un estatus de completa, utilice una llamada GET o HEAD basada en la ruta Q/{guid} para recuperar el archivo.
Campos de devolución disponibles

Haga una solicitud GET o HEAD en la ruta Q. La misma devuelve un archivo JSON que identifica los campos disponibles para filtrar y modelado de informes.

(negotiable)

{

  "adr": [ "field1", "field2", "field3" ‘],

  "cdr": [ "field2", "field8”, "name”],

  //etc

}
Campos de devolución disponibles
 
Campos principales/comunes

ADR.ApplicationRegion

String  

ADR.CustomerId

String

 

ADR.EventName

String

String

ADR.EventSku String

may not be populated

ADR.EventVersion

Integer

1

ADR.FlowId

String

 

ADR.FlowName

String

 

ADR.IsTriggerVerb

Boolean

 

ADR.Originator

String

Engage

ADR.OriginatorId

String

{{ Engage’s ID }}

ADR.SessionId

String

 

ADR.TimeStamp

ISO8601 Datetime

unix timestamp of ADR creation time

ADR.TransactionId

String

 

ADR.VerbId

String

 

 
ADR.VerbName

String

 


Campos opcionales (depende del tipo de evento)

Tipos de evento

CallAnswerIndicator

String ib/ob

Call

CallAnswerTime

ISO8601 Datetime ib/ob

Call

CallDisconnectInitiator

Integer ib/ob

Call

CallDisconnectReason

String ib/ob

Call

CallDuration

Integer ib/ob (what granularity?)

Call

CalledNumber

String ib/ob

Call

CalledNumberCountry

String ib/ob

Call

CalledNumberRegion

String ib/ob

Call

CalledNumberState

String ib/ob

Call

CallEndTime

ISO8601 Datetime ib/ob

Call

CallingNumber

String ib/ob

Call

CallingNumberCity

String ib/ob

Call

CallingNumberCountry

String ib/ob

Call

CallingNumberRegion

String ib/ob

Call

CallingNumberState

String ib/ob, US only

Call

CallOfferTime

ISO8601 Datetime ib/ob

Call

CallVoicemailDetected

Boolean ob only

Call

Channel

String sms,whatsapp,etc

Message

FileReference

String url

Message

FileReferenceType

String MIME type

Message

 

IsOutboundFromCust Boolean  

Call, Message

NetworkFragments

Integer # PDUs (applies to SMS only)

Message

RawMessageSize

Integer bytes

Message

ReceiveTnType

String  

Message

SendingCity

String US only

Message

SendingCountry

String  

Message

SendingId

String  

Message

SendingRegion

String  

Message

SendingState

String  

Message

SendTnType

String SC, 

Message

SentCity

String  

Message

SentCountry

String  

Message

SentId

String  

Message

SentRegion

String  

Message

 

SentState String US only

Message

NumberOfCharacters

integer ib/ob

SpeachRec

SentimentScore

String ib/ob

SpeachRec

TonalityScore

String ib/ob

SpeachRec

Language

String  

SpeachRec

SpeechRecEngine

String  

SpeachRec

 

Confidence Float  

SpeachRec

Runtime

ISO8601 Duration  

SpeachRec

returncode

String?  

SpeachRec

StartTime

ISO8601 Datetime  

ApplicationExit

 

EndTime ISO8601 Datetime  

ApplicationExit

Path

String  

ApplicationExit

ExitReason

String  

ApplicationExit

Solicitud contra consulta diseñada

A continuación, utilice un método POST para establecer el alcance y los filtros de datos para la consulta que diseñó anteriormente. La consulta acepta un cuerpo JSON y un filtro de alcance o filtro de datos, o ambos, y un formato.

 

Nota: Se debe proporcionar al menos un filtro.

 
Datos
  • data.fields son opcionales y comprenden una lista de campos a devolver para los registros filtrados.
  • data.filters son un objeto de los filtros JSON similares a una consulta MongoDB que filtra los datos que se devuelven.

 

Notas:

    • Si no se proporcionó un filtro de alcance, se aplica data.filters a todos los registros y solo se devuelven los datos coincidentes.
    • Si se ha proporcionado un filtro de alcance, data.filters solo se aplica al subconjunto de registros que coinciden con el alcance, por ejemplo, adr.sid = ‘2fa4d23c95eb411d’, y limita aún más los resultados obtenidos.
 
Alcance
  • scope.filters son un objeto de los filtros JSON, similar a una consulta MongoDB, que filtra los registros de alcance de los que se recogen los valores de alcance.
  • scope.field son estáticos: «sid» e identifican el campo de alcance, actualmente restringido a “sid”, cuyos valores se identifican mediante scope.filters, y limitan el alcance global de los registros.

 

Nota: El soporte para un alcance de App ID está bajo revision.

 

Formato
  • Format es un objeto JSON o una cadena que indica el formato de salida de los datos.

 

Nota: El soporte para CSV, XML y SOAP está bajo revision.

request all records related to certain sessions (minimum scope request)

{

  "scope": {

    "field": "sid",

    "filters": {

      "adr.created": { "$gte": "2019-06-15T00:00:000Z" }

    }

  }

}




request all records that explicitly matches criteria (minimum data request)

{

  "data": {

    "filters": {

      "mdr.delivered": { "$gte": "2019-06-15T00:00:000Z", "$lte": "2019-06-15T12:00:000Z" }

    }

  }

}




request all records that match overall session constraints and match data-specific criteria (combined request)

Note that ADR is used to identify applicable sessions, but only associated MDR records will be returned

{

  "data": {

    "filters": {

      "mdr.delivered": { "$gte": "2019-06-15T00:00:000Z", "$lte": "2019-06-15T12:00:000Z" }

    }

  },

  "scope": {

    "field": "sid",

    "filters": {

      "adr.created": { "$gte": "2019-06-15T00:00:000Z" }

    }

  }

}
{ "guid": "cb141a80-39e1-46ad-954c-a70e5c0d08d6" }
Actualizaciones de estatus Get

La llamada GET proporciona el estatus del informe, incluyendo un error si aplica. Las actualizaciones disponibles son:

 

  • Cancelled
  • Complete
  • Pending
  • Failed

 

Parámetros:

  • Path: Q/{guid}/status
  • Guid:  URL parameter specifying the desired document
GET Q/cb141a80-39e1-46ad-954c-a70e5c0d08d6/status
{

    "guid": "cb141a80-39e1-46ad-954c-a70e5c0d08d6",

    "status": "FAILED",

    "messages": [ "Query range to wide", "All data.fields have empty values, advise adding core fields" ]

}
Obtenga el archivo

HEAD 

La llamada HEAD proporciona encabezados, tales como:

 

  • Content-Length
  • Content-Type
  • Expires

 

Parámetros:

  • HEAD    Q/{guid}   
  • guid: URL parameter specifying the desired document
HEAD Q/cb141a80-39e1-46ad-954c-a70e5c0d08d6
Content-Length: 543799

Content-Type: application/json

Expires: 2019-08-01T00:00:000Z
GET

La llamada GET proporciona el documento solicitado si no ha expirado y soporta el encabezado de rango, por lo que las descargas se reanudan.

 

Parámetros:  

  • GET Q/{guid}   
  • guid: URL parameter specifying the desired document
GET Q/cb141a80-39e1-46ad-954c-a70e5c0d08d6
{the data/file}