Custom Workspace & Webhook Integration Guide
- Integrate myCRMSIM with any platform
- Send messages into myCRMSIM via webhook
- Receive message status updates via webhook
- Receive inbound messages (WhatsApp / iMessage / SMS)
- Assign SIMs, WhatsApp, iMessage or devices per workspace
- Unique location_id
- Contact & message routing
- Assigned SIM / iMessage / WhatsApp devices
- One outbound + inbound webhook endpoint
- We send inbound messages & status updates
- You send outbound messages to myCRMSIM
- Go to Admin Panel → Workspaces / Webhooks


3. You will see the Add New Workspace modal

Workspace Fields
| Field | Description |
| Select Existing Workspace | (Optional) Clone an existing workspace configuration |
| Name | Workspace name (e.g. Client Name / App Name) |
| Address | Optional business address |
| Contact email for the workspace | |
| Phone Number | Default phone number (E.164 recommended) |
| URL | Your webhook base URL |
- Click ➕ Add Header

2. Enter:
- Header Key (e.g. Authorization)
- Header Value (e.g. Bearer YOUR_API_KEY)

Examples:
Authorization: Bearer sk_live_xxx
X-Client-ID: mycrm-client-01

- Location ID
- Webhook URL
- Actions (Edit / Delete / Instructions)

- Go to Subaccount SIM Page

2. Click on the "Connect Location"

3. Choose the Workspace you created and toggle On.

You will now see this newly created workspace on the subaccount SIM page in your active workspaces.

Assign one or more:
- SIM numbers
- WhatsApp devices
- iMessage devices
API EndpointPOST https://r6bszuuso6.execute-api.ap-southeast-2.amazonaws.com/prod/webhook
This endpoint is common for all custom workspaces. The location_id inside the payload determines routing.
| Field | Required | Description |
| location_id | ✅ | Custom workspace location ID |
| user_id | ✅ | User identifier from your system |
| phone | ✅ | Recipient phone number (E.164 format) |
| message | ✅ | Message text body |
| attachments | ❌ | Array of publicly accessible media URLs |
| message_id | ✅ | Message identifier generated by your system |
| channel | ✅ | imessage, whatsapp, sms, or rcs |
- message_id is mandatory and used for all future status updates
- Media URLs must be publicly accessible
- The selected channel must be assigned to the workspace device
For every outbound message, myCRMSIM sends status updates to your configured webhook URL.
The following status values are sent by myCRMSIM:
| Status | Meaning |
| SENT | Message sent successfully |
| DELIVERED | Message delivered to recipient |
| FAILED | Message delivery failed |
When an end user replies via SMS, WhatsApp, or iMessage, myCRMSIM forwards the inbound message to your webhook URL.
| Field | Description |
| type | Always MESSAGE |
| location_id | Workspace identifier |
| phone | Sender phone number |
| message | Inbound message text |
| isMe | Always false for inbound messages |
| attachments | Array of media URLs (if any) |
- Edit → Update workspace info, webhook URL, or headers


⚠️ Deleting a workspace will break all assigned subaccounts.
- Custom CRM integration
- SaaS messaging backend
- AI / Bot platform
- Marketing automation tools
- Appointment systems
Your webhook client should expect the following responses from myCRMSIM when sending messages.
- The event has been validated
- The message is queued successfully
- Delivery will be processed asynchronously
- Missing location_id
- Missing or empty message_id
- Invalid channel value
- Invalid phone number format
- Always validate payloads before sending
- Treat HTTP 200 as accepted, not delivered
- Rely on STATUS-UPDATE events for final delivery state
- Implement retry logic only for non-200 responses
- Do not retry blindly on 400 errors
- Send message → receive HTTP 200
- Wait for STATUS-UPDATE callbacks
- Process inbound MESSAGE events
