# getPhoneRouting

Who answers an inbound call or text: the call routing the Automations Map's Phone calls area shows, and who gets a new contact. `orgDefaultRingPolicy` is the default every line follows unless it has its own (null = none configured): `humanStage` is who rings first (`targetKind` LINE_OWNER the number's own user, SPECIFIC_USER one teammate, TEAM a team, ORG_USER_ROTATION a rotation of lines, EXTERNAL or AREA_CODE_MAP forwarding; a null humanStage means nobody rings and the AI pickup answers at once), for `ringSeconds`, only inside its `schedule` (null = always); `aiStage` is the AI employees that pick up a missed call, in `rotation` (no AI answers only when it is empty or every one has `canAnswerCalls` false). `defaultInboundIntakePolicy` is who gets a NEW contact created by inbound traffic. Each line lists its owner and `ringPolicyId` / `assignmentPolicyId` (null = follows the default); read a line's own policy with getPhoneLineRingPolicy. Change a ring policy with setOrgDefaultRingPolicy or setPhoneLineRingPolicy.

- Call: `POST https://server.goliathdata.com/api/v1/call` with `{ "operationId": "getPhoneRouting", "variables": {...} }`
- Scope: `READ`
- Type: query
- Idempotency: a read; rejects `Idempotency-Key`
- Rate-limited: no

## Variables

None.

## Response (data, an example)

```json
{
  "ringPolicyQuery": {
    "orgDefaultRingPolicy": {
      "id": "<ID>",
      "humanStage": {
        "targetKind": "EXTERNAL",
        "ringSeconds": 0,
        "externalE164": "…",
        "specificUser": {
          "id": "<ID>",
          "name": "…"
        },
        "phoneLineIds": [
          "<ID>"
        ],
        "userGroupId": "<ID>",
        "ringAllTeamMembers": true,
        "areaCodeForwardingMap": "…",
        "ownerlessStep": {
          "targetKind": "EXTERNAL",
          "externalE164": "…",
          "specificUser": {
            "id": "<ID>",
            "name": "…"
          },
          "phoneLineIds": [
            "<ID>"
          ],
          "userGroupId": "<ID>"
        },
        "schedule": {
          "timezone": "…",
          "days": [
            {
              "day": "MON",
              "open": "…",
              "close": "…",
              "enabled": true
            }
          ]
        }
      },
      "aiStage": {
        "agents": [
          {
            "id": "<ID>",
            "name": "…",
            "canAnswerCalls": true,
            "cannotAnswerReason": "PAUSED"
          }
        ],
        "rotation": "SINGLE"
      }
    }
  },
  "currentUser": {
    "id": "<ID>",
    "organization": {
      "id": "<ID>",
      "defaultInboundIntakePolicy": {
        "assigneeUserIds": [
          "<ID>"
        ],
        "participantUserIds": [
          "<ID>"
        ],
        "teamIds": [
          "<ID>"
        ],
        "agentAssigneeIds": [
          "<ID>"
        ],
        "workflowGroupIds": [
          "<ID>"
        ],
        "tags": [
          "…"
        ]
      },
      "twilioPhoneNumbers": [
        {
          "id": "<ID>",
          "e164Number": "…",
          "user": {
            "id": "<ID>",
            "firstName": "…",
            "lastName": "…"
          },
          "ringPolicyId": "<ID>",
          "assignmentPolicyId": "<ID>"
        }
      ]
    }
  }
}
```

## Example

```bash
curl https://server.goliathdata.com/api/v1/call \
  -H "Authorization: Bearer $GOLIATH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "operationId": "getPhoneRouting",
    "variables": {}
  }'
```
