# getEmployee

One AI employee in full. `abilities` is what it can do RIGHT NOW, resolved (a tool missing from the stored config follows its default, and most defaults are on, so read `abilities`, never infer from the document). `config.wakes` is what wakes it. `mailboxes` and `triggerForms` are its channels; `legacyPhoneLines` lists only lines it still holds from before lines were shared, since an employee needs no number of its own (it texts on the number the conversation is on, otherwise a shared organization number): an empty list is the normal state, never something to attach, ask about or report; `defaultAssignees` who owns a contact it works when nobody does. `commitments`: `assignedContactCount` the contacts it is on, `scheduledContactCount` only those on a repeating schedule, and `bookedFollowUpContactCount` those with a follow-up it booked itself that has not run yet, so 0 scheduled never means no follow-up is coming. It holds no trust of its own: what it does on its own follows the trust of the person each act is for (the line or mailbox owner, else the contact's teammate, else its Manager), set on that person's Memory, Trust page. A text `sendWindow` holds only what it starts (follow-ups, outreach): its text reply to a lead who wrote in goes out at any hour. `configDocument` is the whole configuration as one JSON document; change part of it with updateEmployeeConfig's `edits` and `configPatch`. Webhook urls read back redacted and are kept on save. `updatedAt` is the `expectedUpdatedAt` to pass so a teammate's save in between is refused rather than overwritten.

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

## Variables

- `employeeId`: `ID!` (required)

## Response (data, an example)

```json
{
  "aiEmployeesQuery": {
    "contactAgent": {
      "id": "<ID>",
      "name": "…",
      "title": "…",
      "status": "ACTIVE",
      "origin": "CUSTOM",
      "canAnswerCalls": true,
      "cannotAnswerReason": "PAUSED",
      "dailyRunCap": 0,
      "dailyCallCap": 0,
      "configDocument": "…",
      "textHours": "…",
      "quietHoursNotice": "…",
      "abilities": [
        {
          "tool": "…",
          "label": "…",
          "on": true,
          "explicitlySet": true,
          "gate": "…"
        }
      ],
      "config": {
        "wakes": {
          "inboundText": true,
          "inboundEmail": true,
          "callEnded": true,
          "meetingSummary": true,
          "formSubmitted": true,
          "inboundSlack": true,
          "teammateText": true,
          "teammateEmail": true,
          "teammateSlack": true,
          "otherEmployeeCallEnded": true,
          "dealStageEntered": true,
          "dealCreated": true,
          "contactNoteAdded": true,
          "dealNoteAdded": true,
          "taskCreated": true,
          "taskCompleted": true,
          "appointmentCreated": true,
          "appointmentChanged": true,
          "contactFieldChanged": true
        }
      },
      "legacyPhoneLines": [
        {
          "id": "<ID>",
          "e164Number": "…",
          "holderUserId": "<ID>"
        }
      ],
      "mailboxes": [
        {
          "id": "<ID>",
          "emailAddress": "…",
          "provider": "…",
          "hasActiveConnection": true
        }
      ],
      "triggerForms": [
        {
          "id": "<ID>",
          "name": "…",
          "status": "…"
        }
      ],
      "defaultAssignees": {
        "mode": "TEAM_RANDOM",
        "assigneeUserIds": [
          "<ID>"
        ]
      },
      "commitments": {
        "assignedContactCount": 0,
        "scheduledContactCount": 0,
        "bookedFollowUpContactCount": 0,
        "openSessionCount": 0
      },
      "createdAt": "2026-01-01T00:00:00.000Z",
      "updatedAt": "2026-01-01T00:00:00.000Z"
    }
  }
}
```

## Example

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