Directrices para las acciones que se utilizan con las reglas de marcación saliente
Se aplican consideraciones especiales al definir el esquema de éxito de una acción de datos que devuelve datos a una regla de marcación saliente.
Propiedades de salida del nido
When constructing its output contact (success schema), it is imperative to nest properties when necessary. If an output field from /execute is a complex object, the corresponding property in the schema should be a nested schema, and not a string that assumes “flattened” output. Outbound already uses ?flatten=true
to flatten output.
Ejemplo de propiedad no anidada
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"data.my data field": {
"type": "string",
}
}
}
The above example specifies a “data.my data field” in the success schema of a data action. The resulting action won’t work if it used by an outbound dialing data action rule. Outbound will be unable to find the field in the /actions/{actionId}/execute response. It will skip calls with a result of ININ-OUTBOUND-RULE-ERROR-SKIPPED
.
Para evitar este problema, convierta "mi campo de datos" en una propiedad anidada del campo "datos":
Ejemplo correctamente anidado
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"my data field": {
"type": "string"
}
}
}
}
}
En general, su esquema de salida debe tener la misma estructura que las propiedades que le interesan recuperar de la solicitud / execute.
Considere este objeto simple y cómo lo devuelve el esquema de salida:
Un objeto simple
{ "foo": { "bat": "bar" } }
Esquema de salida de objeto simple
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"foo": {
"type": "string"
}
}
}
Para que esto sea compatible con Outbound, modifique el esquema de salida del objeto simple para anidar la propiedad:
Objeto simple correctamente anidado
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"foo": {
"type": "object",
"properties": {
"bat": {
"type": "string"
}
}
}
}
}
Este esquema devolverá:
{ "foo": { "bat": "bar" } }
Campos requeridos
Si hay campos que su acción de datos requiere, márquelos como obligatorios en el esquema de éxito.
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"required": [
"contact_id",
"phone_number"
],
"properties": {
...
},