Skip to main content

Send an intake packet to a patient

Goal

Send a full Packet of intake forms to a Patient by SMS or email, so it's completed before their visit.

What 'sending' actually is in this API

There is no dedicated "send packet" endpoint. Sending is done by creating a Message that references the Packet, POST /v2/messages with a packet field and message_type: "packet_response_request". The Message is the resource your integration creates; Zentake delivers it and tracks status.

Prerequisites

  • A Zentake API key pair (X-API-KEY / X-API-SECRET), see Authentication.
  • A Packet already built in the Zentake dashboard. Packets are authored in the dashboard and exposed read-only via the API. You can't create one through this API, only look up an existing one's id.

Steps

1. Find or create the Patient

Search for an existing Patient first:

curl --request GET \
--url 'https://api.app.zentake.com/v2/patients?search=jane%20doe' \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <your_api_key>' \
--header 'X-API-SECRET: <your_api_secret>'

If none matches, create one:

curl --request POST \
--url https://api.app.zentake.com/v2/patients \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <your_api_key>' \
--header 'X-API-SECRET: <your_api_secret>' \
--data '{
"first_name": "Jane",
"last_name": "Doe",
"email": "jane.doe@example.com",
"phone_number": "+15555550123"
}'

Keep the id from the response. You'll need it as patient below.

Contains PHI

Patient records hold personally identifiable and health-related information. Treat the request and response bodies above as PHI.

2. Look up the Packet you want to send

Packets are read-only via the API, so list them to find the right id:

curl --request GET \
--url https://api.app.zentake.com/v2/packets \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <your_api_key>' \
--header 'X-API-SECRET: <your_api_secret>'

Or fetch one directly if you already know its id: Get packet by id.

3. Create the Message

curl --request POST \
--url https://api.app.zentake.com/v2/messages \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <your_api_key>' \
--header 'X-API-SECRET: <your_api_secret>' \
--data '{
"patient": "<patient_id>",
"packet": "<packet_id>",
"message_type": "packet_response_request",
"preferred_delivery_method": "email",
"target_email": "jane.doe@example.com"
}'
  • Exactly one of form, packet, or document must be set on a Message, here it's packet.
  • target_email / target_phone override the Patient's stored contact info if you need to send somewhere else for this one message.
  • To send later instead of immediately, add "scheduled_at": "2025-05-10T15:00:00Z", see Create a new message.

What success looks like

  • 201 Created with a Message object whose id, status, and message_code are populated.
  • The Patient receives an SMS or email with a link to open the Packet.
  • Once they open it, a Packet Response is created and the Message's packet_response field (fetch the Message again to see it) points at it.

Next