Accessing Outbound SMS Message Body for specific Job UUIDs (CRM Sync)

I am building an automation for a client to sync communication logs (emails and sms) from ServiceM8 to Pipedrive.

The Challenge: I am struggling to retrieve the actual message text/body for outbound SMS logs that appear in the Job Diary. While manual notes (Yellow Squares) are easily accessible via /note.json, outbound SMS messages (Blue Bubbles) sent via the UI or the Messaging API do not seem to expose their content through the standard Job-related endpoints.

What I’ve Tested:

  • GET /note.json with $filter: Returns manual notes but excludes the SMS body.

  • GET /jobactivity.json: Shows that an SMS was sent, but the activity_description often lacks the full message body or the entry is missing entirely.

  • GET /staffmessage.json: Often returns a 400 error or empty array when filtered by regarding_job_uuid.

  • GET /inboxmessage.json: This is the only endpoint where I’ve successfully found the message_text, but it lacks a direct $filter for job_uuid.

The Question: Is there a supported (or undocumented) way to query the InboxMessage object by a Job UUID? Or is there a specific sub-resource (e.g., /job/{uuid}/communications.json) that exposes the text of messages sent to a client for that specific job?

As we are polling for multiple clients, pulling the entire global inbox via /inboxmessage.json and filtering client-side in Make.com is not a scalable solution.

Any guidance on how to properly “read” the outbound SMS body for a specific job would be greatly appreciated!

not possible the endpoint is not open and none of the endpoints you have tried are relevant to the sms

Hi Franzson,

From what we’ve published so far, the InboxMessage endpoints are where message bodies are exposed (via message_text), but the list endpoint doesn’t provide a documented way to query or filter InboxMessages by a Job UUID.

If you already have the InboxMessage UUID, you can retrieve the body via GET /inboxmessage/{uuid}.json (the response includes message_text, and message_type can be sms).

GET /inboxmessage.json is paginated, but its documented query params are limited to filter (all/unread/archived/snoozed) and search (subject/from name/from email), so there’s no documented server-side filter you can apply to only pull messages “for job X”.

Also worth calling out: JobActivity in the REST API is the scheduling/allocation object (with fields like start_date and end_date), so it’s not designed to represent SMS diary entries or their bodies.

For SMS you send via the Messaging API, you can include regardingJobUUID in POST /platform_service_sms to link the SMS to a job (so it appears in the job diary).

If you were hoping /staffmessage.json would help, that endpoint is specifically for messages being sent between staff members (even though it includes regarding_job_uuid and supports $filter).

If job-scoped access to outbound SMS bodies is a hard requirement for this CRM sync, email support@servicem8.com and we’ll confirm what’s currently possible from the API and pass the feedback on.

Thanks,
Cody

Hi @franzson_miday,

You can retrieve message bodies via the InboxMessage API (it includes message_text and message_type such as sms), but there isn’t currently a supported way to query /inboxmessage.json by Job UUID.

What’s available today is:

  • List messages: GET /inboxmessage.json (supports limit, offset, a status filter, and search, but no Job UUID parameter)
  • Get a specific message (including the text/body): GET /inboxmessage/{uuid}.json

Also, /staffmessage.json is for messages between staff (not customer SMS), so it won’t contain the blue-bubble outbound SMS content you’re trying to sync.

If you’re sending SMS via the Messaging API, including regardingJobUUID will link the SMS to the job diary in ServiceM8, but you’ll still need to store the body you sent on your side if you need a per-job sync without polling the whole inbox.

Finally, webhooks won’t help here at the moment because Inbox/InboxMessage isn’t one of the objects that supports ServiceM8 webhooks.

If you can confirm whether you need to capture SMS sent from the ServiceM8 UI as well (not just messages your integration sends), reply here and we’ll confirm the best-supported approach.

Thanks,
Cody