# Place a call from a record

Dial one of a record's phone numbers through the workspace's connected dialer. The call lands in the call log immediately as an outbound entry, and the dialer's own status callback moves it from ringing to connected to ended with a duration. A number that asked us to stop is refused with 409 and the same sentence a text gets.

Access class: `workspace`.

## Endpoint

`POST /v1/comms/calls/dial`

## Request body

Content type: `application/json`.

```json
{
  "body": {
    "definitionId": "",
    "phone": "string",
    "rowId": ""
  },
  "params": {},
  "query": {}
}
```

## Responses

### 201

the action's answer

Content type: `application/json`.

```json
{
  "call": {
    "ai_summary": "string",
    "answered_at": "string",
    "duration_seconds": 1,
    "ended_at": "string",
    "provider": "string",
    "recording_count": 1,
    "recording_url": "string",
    "result": "string",
    "started_at": "string",
    "transcript": "string"
  },
  "content": "string",
  "content_html": "string",
  "conversation_id": 1,
  "delivered_at": "string",
  "delivery": {
    "attempts": 1,
    "claimed_at": "string",
    "claimed_by": "string",
    "error": "string",
    "next_attempt_at": "string",
    "settled_at": "string",
    "state": "string"
  },
  "direction": "string",
  "external_id": "",
  "id": 1,
  "is_deleted": true,
  "medium": "string",
  "occurred_at": "string",
  "parent_message_id": 1,
  "read_at": "string",
  "recorded_at": "string",
  "sender_id": 1,
  "sender_name": "string",
  "sender_type": "string",
  "status": "string",
  "subject": "string",
  "text": {
    "error_code": "string",
    "error_message": "string",
    "media_count": 1,
    "provider": "string",
    "segment_count": 1
  }
}
```

### default

a refusal: `{"error": "<what a person needs to read>"}`. 401 no credential, 402 the plan does not include this, 403 the seat does not, 404 the thing does not exist or is not yours to see.

Content type: `application/json`.

```json
{
  "error": "string"
}
```
