ai_call_agent

Initiate an authorized outbound AI telephone call and return a call identifier immediately; completion and duration arrive asynchronously.

When to use

Use when an authorized agent must contact a customer by telephone for a lawful, consent-aware objective and retrieve a structured result later.

Selection guidance

Role: specialized. Use when an authorized agent must contact a customer by telephone for a lawful, consent-aware objective and retrieve a structured result later.

Use cases

Access

Price: $0.30 USD per call. Payment options are deployment-configured; inspect /api/v1/payment-methods. Prices and payment semantics are unchanged from the canonical registry.

Related tools

Example input

{
  "phoneNumber": "+96891234567",
  "objective": "Confirm interest in a product demonstration.",
  "language": "en",
  "maxDurationSeconds": 300,
  "context": {
    "customerName": "Example Customer"
  }
}

Example output

{
  "callId": "call_example",
  "status": "queued",
  "answered": false,
  "durationSeconds": 0,
  "outcome": null,
  "summary": null,
  "nextAction": null,
  "structuredFacts": {},
  "transcript": [],
  "createdAt": "2026-01-01T00:00:00.000Z",
  "completedAt": null
}

Input schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "phoneNumber": {
      "type": "string",
      "pattern": "^\\+[1-9]\\d{7,14}$"
    },
    "objective": {
      "type": "string",
      "minLength": 10,
      "maxLength": 2000
    },
    "language": {
      "type": "string",
      "enum": [
        "en",
        "ar"
      ]
    },
    "maxDurationSeconds": {
      "default": 300,
      "type": "integer",
      "minimum": 1,
      "maximum": 3600
    },
    "context": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "string",
        "maxLength": 500
      }
    },
    "safety": {
      "type": "object",
      "properties": {
        "consentNotice": {
          "type": "string",
          "maxLength": 500
        },
        "recording": {
          "default": false,
          "type": "boolean"
        },
        "transcription": {
          "default": false,
          "type": "boolean"
        },
        "timezone": {
          "type": "string",
          "maxLength": 100
        }
      },
      "required": [
        "recording",
        "transcription"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "phoneNumber",
    "objective",
    "language",
    "maxDurationSeconds"
  ],
  "additionalProperties": false
}

Output schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "callId": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "enum": [
        "created",
        "queued",
        "dialing",
        "ringing",
        "answered",
        "in_progress",
        "completed",
        "no_answer",
        "busy",
        "rejected",
        "failed",
        "cancelled"
      ]
    },
    "answered": {
      "type": "boolean"
    },
    "durationSeconds": {
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "outcome": {
      "type": [
        "string",
        "null"
      ]
    },
    "summary": {
      "type": [
        "string",
        "null"
      ]
    },
    "nextAction": {
      "type": [
        "string",
        "null"
      ]
    },
    "structuredFacts": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "transcript": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "speaker": {
            "type": "string",
            "enum": [
              "agent",
              "customer"
            ]
          },
          "text": {
            "type": "string"
          },
          "at": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
          }
        },
        "required": [
          "speaker",
          "text",
          "at"
        ],
        "additionalProperties": false
      }
    },
    "createdAt": {
      "type": "string",
      "format": "date-time",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
    },
    "completedAt": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "callId",
    "status",
    "answered",
    "durationSeconds",
    "outcome",
    "summary",
    "nextAction",
    "structuredFacts",
    "transcript",
    "createdAt",
    "completedAt"
  ],
  "additionalProperties": false
}

Category: Voice / Communication · hierarchy: specialized · idempotent: no · side effects: yes