---
title: "Get Campaign Pulse Occupancy"
method: GET
path: "/v2/campaigns/{campaignId}/pulse-occupancy"
tags: ["Campaigns"]
---

# Get Campaign Pulse Occupancy

`GET /v2/campaigns/{campaignId}/pulse-occupancy`

## Request

- Base URL: `https://api.carecycle.ai`
- URL: `https://api.carecycle.ai/v2/campaigns/{campaignId}/pulse-occupancy`
- Auth: API key in header `x-api-key`

See how many customers are at each step of a campaign's workflow right now.

## Path parameters

- `campaignId` string, uuid, required: Campaign ID

## Response `200`

GET /v2/campaigns/:campaignId/pulse-occupancy Positive response

- GetV2CampaignsCampaignIdPulseOccupancyPositiveResponse
  - `campaignId` string, uuid, required
  - `generatedAt` string, date-time, required
  - `totalMappedCustomers` number, required: Customers currently mapped onto workflow nodes.
  - `unmappedCustomers` number, required: Active, non-terminal customers in the campaign without a current mapped Pulse node.
  - `outcomes` object, required: Campaign-level terminal outcomes that remove customers from the active Pulse flow.
    - `appointmentsBooked` number, required: Distinct customer campaigns in this campaign with appointment_booked = true.
    - `inquiriesRaised` number, required: Distinct customer campaigns in this campaign with at least one linked inquiry.
    - `doNotContacts` object, required
      - `total` number, required: Distinct customer campaigns with any do-not-contact indicator from SMS unsubscribe or call disposition.
      - `fromSms` number, required: Distinct customer campaigns with an SMS unsubscribe indicator. This is not exclusive with fromCall.
      - `fromCall` number, required: Distinct customer campaigns with a call disposition of 'Do Not Contact'. This is not exclusive with fromSms.
  - `nodes` object[], required
    - `nodeId` string, required: Pulse node ID
    - `nodeType` string, nullable, required
    - `totalCustomers` number, required: Customers currently assigned to this node
    - `pulseStatusCounts` object, required: Counts grouped by pulse workflow status
    - `customerStatusCounts` object, required: Counts grouped by customer campaign status

## Other responses

- `400`: GET /v2/campaigns/:campaignId/pulse-occupancy Negative response 400
- `401`: GET /v2/campaigns/:campaignId/pulse-occupancy Negative response 401
- `403`: GET /v2/campaigns/:campaignId/pulse-occupancy Negative response 403
- `404`: GET /v2/campaigns/:campaignId/pulse-occupancy Negative response 404
- `409`: GET /v2/campaigns/:campaignId/pulse-occupancy Negative response 409
- `422`: GET /v2/campaigns/:campaignId/pulse-occupancy Negative response 422
- `429`: GET /v2/campaigns/:campaignId/pulse-occupancy Negative response 429
- `500`: GET /v2/campaigns/:campaignId/pulse-occupancy Negative response 500
- `502`: GET /v2/campaigns/:campaignId/pulse-occupancy Negative response 502
- `503`: GET /v2/campaigns/:campaignId/pulse-occupancy Negative response 503

---

[API](https://skmtc.dev/carecycle/apis/carecycle-public-api.md) - [All operations](https://skmtc.dev/carecycle/apis/carecycle-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/carecycle/apis/carecycle-public-api/revisions/db390c743c36?raw)
