List Conversations

Retrieve a paginated list of WhatsApp conversations for your company. Conversations are returned in reverse chronological order (most recent first), making it easy to fetch the latest conversation data. This is the WhatsApp analogue of List Calls.

Only conversations that have been closed and analysed are returned.

Endpoint

GET /api/oauth/zapier/conversations

Use Cases

  • Build custom dashboards showing recent WhatsApp conversations
  • Export conversation data to external systems
  • Sync conversation outcomes and collected data with a CRM or helpdesk
  • Analyze enquiry patterns and volumes across channels

Request Parameters

ParameterTypeRequiredDefaultValidationDescription
pageintegerNo0>= 0Zero-indexed page number for pagination
limitintegerNo201-100Number of conversations to return per page

Understanding Pagination

Pages are zero-indexed (first page is page=0). The limit parameter accepts 1-100 conversations per page (default: 20).

Request Example

GET /api/oauth/zapier/conversations?page=0&limit=20 HTTP/1.1
Host: app.heyjodie.com
Authorization: Bearer YOUR_ACCESS_TOKEN

Response

Status Code: 200 OK

Returns an array of conversation objects, ordered by most recent first.

[
  {
    "id": "wac_a1b2c3d4e5f6g7h8i9j0",
    "conversation_date": "2026-06-24T10:00:00Z",
    "phone_number_local": "07123456789",
    "phone_number_international": "+447123456789",
    "status": "closed",
    "message_count": 6,
    "name": "Jane Doe",
    "message": "Customer asked about opening hours",
    "summary": "Customer asked whether the shop was open today and was told it is open until 6pm.",
    "data_collections": {
      "enquiry_type": {
        "label": "Enquiry Type",
        "value": "Opening hours"
      }
    }
  }
]

Response Fields

FieldTypeNullableDescription
idstringNoUnique conversation identifier (prefixed with wac_)
conversation_datestringNoISO 8601 formatted timestamp of when the conversation began
phone_number_localstringNoContact phone number in national format (country-specific)
phone_number_internationalstringNoContact phone number in E.164 format (international standard)
statusstringNoConversation status. The list only returns closed conversations, so this is always closed.
message_countintegerNoTotal number of messages exchanged in the conversation
namestringYesContact's name if captured
messagestringYesConversation message or notes captured
summarystringYesAI-generated summary of the conversation
data_collectionsobjectYesCustom data captured during the conversation

Understanding Data Collections

Data Collections are custom questions that Hey Jodie asks during the conversation. The responses are captured as key-value pairs with a label (the question) and value (the response). The fields vary based on your configuration and may be empty if no custom questions are configured.

Example Usage

# Get first page (conversations 1-20)
curl "https://app.heyjodie.com/api/oauth/zapier/conversations?page=0&limit=20" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"

# Get second page (conversations 21-40)
curl "https://app.heyjodie.com/api/oauth/zapier/conversations?page=1&limit=20" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"

Empty Response

If there are no conversations for the requested page, you'll receive an empty array:

[]

Status Code: 200 OK (empty results are not an error)

Error Responses

401 Unauthorized

The access token is missing, invalid, or expired.

{
  "message": "Unauthenticated."
}

403 Forbidden

You're using an admin account, which cannot access OAuth endpoints.

{
  "message": "OAuth2 access is restricted to user accounts only."
}

422 Validation Error

Invalid parameter values (e.g., limit > 100).

{
  "message": "The given data was invalid.",
  "errors": {
    "limit": ["The limit must not be greater than 100."]
  }
}

Rate Limiting

This endpoint is subject to rate limiting (60 requests per minute). If you exceed the limit, you'll receive a 429 Too Many Requests response.