Authentication
Every request must include your API key in the Mumble-Api-Key header. You can generate and manage keys from your Mumble account settings.
Mumble-Api-Key: your-api-key-here
Content-Type: application/json
A missing or unknown key is rejected with an error such as Authorization is required. or API key does not exist. Keys never expire.
Rate limits & quotas
Every endpoint is protected by two rate-limit buckets. Whichever trips first returns 429 Too Many Requests:
- Per API key: counted for each authenticated key.
- Per IP: a separate bucket for the calling IP address.
The sending endpoints send-text-message, send-template and send-template-text-variable have an additional limit of 5 requests per second, 100 per minute, and 2,000 per hour per API key.
Plan quotas. Each successful call counts toward your plan's API usage, and each template sent counts toward your monthly message quota. When a quota runs out, calls fail with API key usage limit reached or Maximum messages limit reached.
If you need higher limits for production workloads, contact support@mumble.co.il.
Errors & conventions
All responses are JSON. Errors include "error": true and a "message" field. Most successful responses include "success": true; the list endpoints get-labels, get-bots and get-templates return only the list.
Common status codes:
| Code | Meaning |
|---|---|
200 | Request succeeded. A few business rejections (customer on the Black List) also come back as 200 with "error": true, so always check the body. |
400 | Bad request: missing or invalid parameters |
401 | Unauthorized: invalid or missing API key, or WhatsApp is not connected on the account |
404 | Resource not found (customer, label, template, agent, team, bot, or message), or an empty list |
409 | Conflict, e.g. a label with that name already exists |
429 | Rate limit hit |
500 | Unexpected server error; retry with backoff |
Phone numbers should be sent as international digits without +, spaces, or dashes (e.g. 972501234567). Most endpoints strip + ( ) - and spaces, but get-conversation, is-active-conv and remove-customer-from-label match the number exactly, so send digits only everywhere.
GET endpoints read their parameters from a JSON body. get-customer, get-all-customers and get-conversation also accept query-string parameters (e.g. ?customer_phone=972501234567), which is safer because many HTTP clients drop the body on GET.
Customers are created automatically by every send endpoint. If the phone number is new, the customer is created and tagged with the labels in source (or "New Leads" when source is empty).
Customers
POST /mumbleapi/add-new-customer Create a customer, or update labels and bot on an existing one.
Create a new customer. Marketing attribution fields (UTMs, click IDs, device info) and custom fields can be attached at creation. If the phone number already exists, the call does not fail: labels from source are added, the bot setting is applied and attribution fields are updated, but name and email are left unchanged (use edit-customer for those).
bot_token, chatbots are turned off for this customer, including an existing customer who had a bot. Always send bot_token if the customer should stay with a bot.customer_phonestringrequirednamestringoptionalemailstringoptionalsourcestringoptionalbot_tokenstringoptional"AI" for Dolores AI, or "turn_off". "AI" only takes effect if Dolores is enabled on the account; otherwise bots are turned off.*tracking fields*stringoptional*custom fields*anyoptional{
"customer_phone": "972501234567",
"name": "John Doe",
"email": "john@example.com",
"source": "web,summer_sale",
"bot_token": "AI",
"utm_source": "google",
"utm_campaign": "summer_sale",
"lead_score": "85"
}{
"success": true,
"message": "Added successfully with 1 custom field(s)",
"custom_fields_processed": ["lead_score"]
}Added successfullyPhone number is required.Failed to add customer due to invalid inputCannot add more than 50 custom fields. ...UnauthorizedAn unexpected error occurredPOST /mumbleapi/edit-customer Update an existing customer.
Update an existing customer. Fields not sent are unchanged, and empty values are ignored (a field can't be cleared through the API). Any key that isn't a standard field becomes a custom field on the customer (max 50 per account).
source and bot_token are not standard fields on this endpoint, so they would be saved as custom fields. Use add-customer-to-label and assign-bot instead.customer_phonestringrequirednamestringoptionalemailstringoptional*tracking fields*stringoptional*custom fields*anyoptional{
"customer_phone": "972501234567",
"name": "Jane Doe",
"email": "jane@example.com",
"company_size": "50-100",
"lead_score": "85"
}{
"success": true,
"message": "Customer updated successfully with 2 custom field(s)",
"custom_fields_processed": [
"company_size",
"lead_score"
]
}Customer updated successfullyPhone number is required.Failed to update customer due to invalid inputCannot add more than 50 custom fields. ...UnauthorizedCustomer not foundAn unexpected error occurredDELETE /mumbleapi/delete-customer Permanently delete a customer.
Permanently delete a customer and their related data. This can't be undone.
customer_phonestringrequired{
"customer_phone": "972501234567"
}{
"success": true,
"message": "Customer deleted successfully"
}Customer deleted successfullyPhone number is required.UnauthorizedCustomer not foundGET /mumbleapi/get-customer Get a single customer with attribution, custom fields and labels.
Get a single customer record: contact details, conversation status, all attribution fields, the customer's labels, and custom fields. For customers who came from a Click-to-WhatsApp ad, ctwa_clid holds the ad click ID (useful for sending conversions back to Meta); it is null otherwise. Custom fields are returned as top-level keys inside customer, by their field name.
customer_phonestringrequired?customer_phone=972501234567.{
"customer_phone": "972501234567"
}{
"success": true,
"customer": {
"id": "uuid",
"name": "John Doe",
"phone": "972501234567",
"email": "john@example.com",
"country": "IL",
"conversation_status": "new",
"last_interaction": "Mon, 29 Jun 2026 10:15:00 GMT",
"mumclid": "...",
"ctwa_clid": "ARAkLkA8rmlFeiCktEJQ-QTwRiyYHAFDLMNDBH0CD3qpjd0HR4irJ6LEkR7JwFF4XvnO2E4Nx0-eM-GABDLOPaOdRMv-_zfUQ2a",
"bsuid": null,
"utm_source": "google",
"utm_campaign": "summer_sale",
"gclid": "...",
"...": "all other attribution fields",
"lead_score": "85",
"labels": [
{ "id": "label-uuid", "name": "New Leads" }
]
}
}OKUnauthorizedCustomer not found (customer_phone missing)Customer not foundGET /mumbleapi/get-all-customers Paginated list of all customers (250 per page).
Paginated list of all customers, 250 per page. Each item has name, phone and email; use get-customer for the full record. Parameters can be sent in the JSON body or the query string (?page=2&sort_by=date_created).
pageintoptionalsort_bystringoptionalname (default), phone, email, date_created, last_interaction, conversation_status, country. Ascending.{
"page": 1,
"sort_by": "date_created"
}{
"success": true,
"customers": [
{ "name": "John Doe", "phone": "972501234567", "email": "john@example.com" }
],
"total": 412,
"current_page": 1,
"per_page": 250,
"total_pages": 2
}OKUnauthorizedAn unexpected error occurredPOST /mumbleapi/edit-customer-conv-status Update a customer's conversation status.
Update a customer's conversation status. The change is applied in the background right after the response, and triggers any automations set on status changes.
customer_phonestringrequiredstatusstringrequiredconversation_status is accepted as an alias.{
"customer_phone": "972501234567",
"status": "in_progress"
}{
"success": true,
"message": "Customer conversation status updated successfully"
}Customer conversation status updated successfullyPhone number is required.Invalid conversation status please choose from the following ...UnauthorizedCustomer not foundPOST /mumbleapi/assign-customer-to-agent Route a customer's conversations to a specific agent.
Route a customer's conversations to a specific agent, by ID or by name. Send "agent_id": "-1" to unassign the customer.
customer_phonestringrequiredagent_idstringone of"-1" to unassign.agent_namestringone ofagent_id is not sent.{
"customer_phone": "972501234567",
"agent_id": "agent-uuid"
}{
"success": true,
"message": "Customer updated successfully"
}Customer updated successfullyPhone number is required.agent_id or agent_name is required.UnauthorizedCustomer not foundAgent with ID ... not foundPOST /mumbleapi/assign-customer-to-team Route a customer's conversations to a team.
Route a customer's conversations to a team, by ID or by name.
customer_phonestringrequiredteam_idstringone ofteam_namestringone ofteam_id is not sent.{
"customer_phone": "972501234567",
"team_name": "Sales"
}{
"success": true,
"message": "Customer updated successfully"
}Customer updated successfullyPhone number is required.team_id or team_name is required.UnauthorizedCustomer not foundTeam with ID ... not foundLabels
POST /mumbleapi/add-customer-to-label Tag a customer with an existing label.
Tag a customer with a label. The label must already exist; create it first with add-new-label. Label automations run after the response. Adding a customer to the Black List label blocks all template sends to them.
customer_phonestringrequiredlabel_namestringrequired{
"customer_phone": "972501234567",
"label_name": "VIP customers"
}{
"success": true,
"message": "Added successfully"
}Added successfullyLabel name and customer phone are required.UnauthorizedLabel '...' not found.Customer with phone '...' not found.DELETE /mumbleapi/remove-customer-from-label Remove a label from a customer.
Remove a label from a customer. Customers can't be removed from the Black List label through the API; do that in the Mumble app.
customer_phonestringrequired+ or spaces).label_namestringrequired{
"customer_phone": "972501234567",
"label_name": "VIP customers"
}{
"success": true,
"message": "Customer 972501234567 removed from label VIP customers"
}Customer ... removed from label ...Cannot remove customer from Black List (error: true)Label name and customer phone are required.UnauthorizedLabel '...' not found.Customer with phone '...' not found.POST /mumbleapi/add-new-label Create a new label (list) in your account.
Create a new label (list) in your account. A random color is assigned.
label_namestringrequired{
"label_name": "VIP customers"
}{
"success": true,
"message": "Label 'VIP customers' created successfully"
}Label '...' created successfullyLabel name is required.UnauthorizedLabel '...' already exists.DELETE /mumbleapi/delete-label Delete a label.
Delete a label. Customers in it are not deleted; they just lose the label.
label_namestringrequired{
"label_name": "VIP customers"
}{
"success": true,
"message": "Label 'VIP customers' deleted successfully"
}Label '...' deleted successfullyLabel name is required for deletion.UnauthorizedLabel '...' not found.GET /mumbleapi/get-labels List the names of all labels in your account.
List all labels in your account, as an array of label names.
(no body){
"labels": ["New Leads", "VIP customers", "Black List"]
}OKUnauthorizedNo labels foundMessaging
All send endpoints create the customer if the phone number is new, and accept source, bot_token, name and email (same meaning as in add-new-customer). Sending source or bot_token for an existing customer re-applies the bot setting the same way, so leaving bot_token empty while sending source turns that customer's bot off.
POST /mumbleapi/send-text-message Send a free-form text message.
Send a free-form text message. Requires an open 24-hour conversation window (see is-active-conv); outside it, send a template. Rate limited to 5/sec, 100/min, 2,000/hour per API key.
customer_phonestringrequiredtextstringrequiredsourcestringoptionalbot_tokenstringoptionalnamestringoptionalemailstringoptional{
"customer_phone": "972501234567",
"text": "Hello!"
}{
"success": true,
"id": 1,
"message_wa_id": "wamid.abc123"
}SentMissing required parameters.Conversation is closed ("is_active": false)Failed to send text message.UnauthorizedThe user is not authorized to send text messages.Rate limit hitPOST /mumbleapi/send-media-message Send a media message (image, video, audio, document).
Send a media message (image, video, audio, document). Supports two modes: (A) file upload via multipart/form-data, or (B) public URL via JSON with media_url. Requires an open 24-hour window. The file type is taken from the file name's extension. Supported: jpg, jpeg, png, webp, mp4, mov, mp3, ogg, m4a, wav, opus, pdf, doc, docx, xls, xlsx, ppt, pptx, txt.
filefileone ofmedia_urlstringone ofcustomer_phonestringrequiredcaptionstringoptionalfilenamestringoptionalmedia_url if the URL has no file extension.sourcestringoptionalbot_tokenstringoptionalnamestringoptionalemailstringoptionalcurl -X POST https://app.mumble.co.il/mumbleapi/send-media-message \
-H "Mumble-Api-Key: your-api-key-here" \
-F "file=@./brochure.pdf" \
-F "customer_phone=972501234567" \
-F "caption=Our brochure"{
"customer_phone": "972501234567",
"media_url": "https://example.com/photo.jpg",
"caption": "Check this out!",
"filename": "photo.jpg"
}{
"success": true,
"id": 1,
"message_wa_id": "wamid.abc123"
}SentEither file upload or media_url is required.Missing required parameter: customer_phoneCannot determine file type. Provide a filename parameter with an extension.Unsupported file type: .xyzConversation is closed ("is_active": false)Failed to send media message.UnauthorizedThe user is not authorized to send media messages.Failed to upload media file.POST /mumbleapi/send-template Send an approved template that has no variables.
Send an approved message template that has no body variables. Use this to start a conversation outside the 24-hour window. Templates with {{1}}-style variables are rejected here; use send-template-text-variable. Rate limited to 5/sec, 100/min, 2,000/hour per API key.
customer_phonestringrequiredtemplate_idstringrequiredmedia_linkstringoptionalpush_to_chatbooleanoptionaltrue. Set false to send silently: the message is delivered and stored, but it doesn't appear in the inbox in real time and doesn't move the customer to the top of the conversation list.sourcestringoptionalbot_tokenstringoptionalnamestringoptionalemailstringoptional{
"customer_phone": "972501234567",
"template_id": "template-id",
"media_link": "https://example.com/banner.jpg",
"push_to_chat": true
}{
"success": true,
"id": 1,
"message_wa_id": "wamid.abc123"
}SentCustomer is in the black list (error: true, not sent)Missing required parameters.Template is not approvedThis template contains variables. Please use this endpoint: .../send-template-text-variableMedia link is not validMaximum messages limit reached.Failed to send template message: ...UnauthorizedTemplate not foundRate limit hitPOST /mumbleapi/send-template-text-variable Send an approved template that has body variables ({{1}}, {{2}}, …).
Send an approved template that has body variables ({{1}}, {{2}}, …). Pass the values in order. Templates without variables are rejected here; use send-template. For AUTHENTICATION (OTP) templates, the first value in variable is the code. Rate limited to 5/sec, 100/min, 2,000/hour per API key.
customer_phonestringrequiredtemplate_idstringrequiredvariablearray of stringsrequired{{1}}. Send numbers as strings ("99.90", not 99.9).button_variablearrayoptionalbutton_variable. See Button values below.media_linkstringoptionalpush_to_chatbooleanoptionalsourcestringoptionalbot_tokenstringoptionalnamestringoptionalemailstringoptionalEach item in button_variable fills one button. A plain string fills a URL button's {{1}} suffix, and its position in the array is used as the button index. Buttons are counted from 0 in the order they appear on the template, including quick-reply and phone buttons. If the URL button isn't the first button, send an object with an explicit index:
"button_variable": [
{ "index": 1, "text": "order-12345" }
]
Other button types use an object with sub_type:
{ "sub_type": "copy_code", "index": 0, "code": "SAVE20" }
{ "sub_type": "quick_reply", "index": 0, "payload": "confirm" }
{
"customer_phone": "972501234567",
"template_id": "template-id",
"variable": [
"John Doe",
"#12345"
],
"button_variable": [
"order-12345"
]
}{
"success": true,
"id": 1,
"message_wa_id": "wamid.abc123"
}SentCustomer is in the black list (error: true, not sent)Missing required parameters.Template is not approvedThis template does not contain variables. Please use this endpoint: .../send-templateMedia link is not validMaximum messages limit reached.Failed to send template with variables: ...Failed to send templateUnauthorizedTemplate not found.Rate limit hitGET /mumbleapi/get-message Fetch a single message and its delivery status by WhatsApp ID.
Fetch a single message by its WhatsApp ID (the message_wa_id returned when sending). The response contains the full stored message record; use status to track delivery.
message_wa_idstringrequired{
"message_wa_id": "wamid.abc123"
}{
"success": true,
"message": {
"id": 1,
"message_wa_id": "wamid.abc123",
"text": "Hello",
"status": "delivered",
"...": "other message fields"
}
}OKUnauthorizedMessage not foundConversations
GET /mumbleapi/get-conversation Paginated conversation history for a customer.
Conversation history for a customer, oldest first, 250 messages per page. An unknown number returns an empty list. Parameters can be sent in the JSON body or the query string.
customer_phonestringrequired+ or spaces).pageintoptional{
"customer_phone": "972501234567",
"page": 1
}{
"success": true,
"messages": [
{
"id": 1,
"from": "972501234567",
"to": "972501111111",
"text": "Hello",
"is_img": false,
"is_video": false,
"is_audio": false,
"is_pdf": false,
"is_sticker": false,
"is_geo_location": false,
"media_url": null,
"timestamp": 1751200000
}
],
"total": 1,
"pages": 1,
"current_page": 1
}OKUnauthorizedCustomer not found (customer_phone missing)GET /mumbleapi/is-active-conv Check whether a customer's 24-hour conversation window is currently open.
Check whether a customer's 24-hour conversation window is currently open. If is_active is false, you can only reach them with an approved template.
customer_phonestringrequired+ or spaces).{
"customer_phone": "972501234567"
}{
"success": true,
"is_active": true
}OKUnauthorizedCustomer not foundAgents & Teams
GET /mumbleapi/get-agents List all agents (sub-users) in your account.
List all agents (sub-users) in your account. Note that the list key contains a space: "agent list". An account with no agents returns 404.
(no body){
"success": true,
"agent list": [
{
"name": "Agent Name",
"id": "uuid"
}
]
}OKUnauthorizedNo agents on the accountGET /mumbleapi/get-teams List all teams in your account.
List all teams in your account. Note that the list key contains a space: "team list". An account with no teams returns 404.
(no body){
"success": true,
"team list": [
{
"name": "Team Name",
"id": "uuid"
}
]
}OKUnauthorizedNo teams on the accountBots
GET /mumbleapi/get-bots List all chatbots in your account.
List the flow chatbots in your account. Each id is the value to pass as bot_token. When Dolores AI is enabled, it's included as {"name": "Dolores AI", "id": "AI"}. Accounts with no flow chatbots get a 404.
(no body){
"bots": [
{ "name": "Welcome flow", "id": "bot-id" },
{ "name": "Dolores AI", "id": "AI" }
]
}OKUnauthorizedNo bots foundPOST /mumbleapi/assign-bot Assign a chatbot to a customer.
Assign a chatbot to an existing customer. Pass a flow chatbot's ID (from get-bots), "AI" for Dolores AI, or "turn_off" to disable bots for the customer. A flow chatbot starts from its first step.
customer_phonestringrequiredbot_tokenstringrequired"AI" for Dolores AI, or "turn_off".{
"customer_phone": "972501234567",
"bot_token": "AI"
}{
"success": true,
"message": "Bot assignment updated successfully."
}Bot assignment updated successfully.Phone number is required.Bot token is required.Dolores AI is not active for this account.UnauthorizedBot not found.Templates
GET /mumbleapi/get-templates List your approved WhatsApp message templates.
List the approved WhatsApp message templates in your account. Pending and rejected templates are not returned. Use id as template_id when sending.
(no body){
"templates": [
{
"name": "order_update",
"id": "template-id",
"category": "UTILITY",
"body": "Hi {{1}}! Your order {{2}} will arrive on {{3}}.",
"status": "APPROVED"
}
]
}OKUnauthorizedNo templates foundPOST /mumbleapi/create-template Create a new WhatsApp message template.
Create a new WhatsApp message template. Templates must be approved by Meta before they can be used (they show up in get-templates once approved). Supports body variables ({{1}}, {{2}}, …), a static TEXT header or a media header (IMAGE, VIDEO, DOCUMENT), and buttons (URL, QUICK_REPLY, PHONE_NUMBER). Does not support header variables, MPM, Carousels, or Catalogs.
namestringrequiredbodystringrequired{{1}}, {{2}}, … variables.languagestringoptionalhe, en_US. Default en_US.categorystringoptionalMARKETING (default), UTILITY, or AUTHENTICATION.allow_category_changebooleanoptionaltemplate_typestringoptionalcustom (standard templates).body_examplesarrayoptionalheaderobjectoptional{"format": "IMAGE" | "VIDEO" | "DOCUMENT"} together with media_url, or {"format": "TEXT", "text": "Order update"}.media_urlstringoptionalheader.format is IMAGE, VIDEO or DOCUMENT.footerstringoptionalbuttonsarrayoptionalSimple text. Basic template with body text only, no variables
{
"name": "welcome_message",
"language": "en_US",
"category": "MARKETING",
"body": "Welcome to our store! We're glad to have you."
}
Body variables. Template with body variables {{1}}, {{2}}, {{3}}
{
"name": "order_update",
"language": "en_US",
"category": "UTILITY",
"body": "Hi {{1}}! Your order {{2}} will arrive on {{3}}.",
"body_examples": ["John", "#12345", "Jan 30"]
}
Image header. Template with image header (no header variables supported)
{
"name": "summer_sale",
"language": "en_US",
"category": "MARKETING",
"header": {"format": "IMAGE"},
"body": "Summer Sale! Get {{1}} off.",
"body_examples": ["25%"],
"media_url": "https://example.com/banner.jpg"
}
PDF document. Template with PDF document header
{
"name": "invoice",
"language": "en_US",
"category": "UTILITY",
"header": {"format": "DOCUMENT"},
"body": "Hi {{1}}, your invoice {{2}} is attached.",
"body_examples": ["Customer", "INV-001"],
"media_url": "https://example.com/invoice.pdf"
}
Quick reply buttons. Template with two quick reply buttons
{
"name": "order_received",
"language": "en_US",
"category": "UTILITY",
"body": "We received your order {{1}}. Confirm?",
"body_examples": ["#12345"],
"buttons": [
{"type": "QUICK_REPLY", "text": "Yes, Confirmed"},
{"type": "QUICK_REPLY", "text": "No, Cancel"}
]
}
Dynamic URL button. The {{1}} at the end of the URL is filled at send time with button_variable in send-template-text-variable. example is required for Meta review.
{
"name": "track_order",
"language": "en_US",
"category": "UTILITY",
"body": "Hi {{1}}, your order has shipped.",
"body_examples": ["John"],
"buttons": [
{"type": "URL", "text": "Track Order", "url": "https://example.com/track/{{1}}", "example": "order-12345"}
]
}
Call button. Template with phone number button (CTA)
{
"name": "customer_support",
"language": "en_US",
"category": "UTILITY",
"body": "Need help with order {{1}}? Call us!",
"body_examples": ["#12345"],
"buttons": [
{"type": "PHONE_NUMBER", "text": "Call Support", "phone_number": "+972501234567"}
]
}
Complete example. Image header + body variables + footer + button
{
"name": "order_complete",
"language": "en_US",
"category": "UTILITY",
"header": {"format": "IMAGE"},
"body": "Hi {{1}}! Order {{2}} confirmed. Total: {{3}}. Delivery: {{4}}.",
"body_examples": ["John", "#12345", "$99.99", "Jan 30"],
"footer": "Thank you for your purchase!",
"buttons": [{"type": "QUICK_REPLY", "text": "Contact Support"}],
"media_url": "https://example.com/order-banner.jpg"
}{
"name": "order_confirmation",
"language": "en_US",
"category": "MARKETING",
"header": {
"format": "IMAGE"
},
"body": "Hi {{1}}! Your order {{2}} has been confirmed. Total: {{3}}.",
"body_examples": [
"John Doe",
"#12345",
"$99.99"
],
"footer": "Thank you for shopping!",
"buttons": [
{
"type": "URL",
"text": "Track Order",
"url": "https://example.com/track/{{1}}",
"example": "order-12345"
}
],
"media_url": "https://example.com/banner.jpg"
}{
"error": false,
"message": "Template created successfully",
"data": {
"id": "1234567890",
"status": "PENDING",
"category": "MARKETING"
}
}Template created successfully (PENDING approval by Meta)Template name is requiredTemplate name already existsInvalid template configurationMedia link is not validWhatsApp Business Account not configuredFailed to create template (Meta's reason in "details")UnauthorizedBody text is requiredConversation status values
Used by POST /mumbleapi/edit-customer-conv-status and returned as conversation_status by get-customer. The API accepts only the English key (left column). Localized display strings are used only in the Mumble UI.
| Status key (API) | Display |
|---|---|
new | New (freshly created) |
open | Open |
closed | Closed |
waiting | Waiting |
waiting_for_agent | Waiting for Agent |
reopened | Reopened |
solved | Solved |
in_progress | In Progress |
in_process | In Process |
spam | Spam |
being_handled | Being Handled |
not_relevant | Not Relevant |
appointment_scheduled | Appointment Scheduled |
pending_customer | Pending Customer |
escalated | Escalated |
follow_up | Follow Up |
duplicate | Duplicate |
require_review | Require Review |
Marketing attribution fields
The following optional fields are recognised on add-new-customer and edit-customer and returned by get-customer. Send any of them to record where the customer came from: UTMs, ad platform click IDs, device, and page context. Values longer than the column size are truncated.
| Field | Purpose |
|---|---|
utm_source | UTM source |
utm_medium | UTM medium |
utm_campaign | UTM campaign |
utm_content | UTM content |
utm_term | UTM term |
utm_ad | UTM ad |
placement | Ad placement |
campaign_id | Ad campaign ID |
adset_id | Meta ad set ID |
keyword_id | Google Ads keyword ID |
matchtype | Ad match type |
network | Ad network |
ga_session_id | GA session ID |
gclid | Google Ads click ID |
wbraid | Google Ads web click ID (iOS 14+) |
gbraid | Google Ads app click ID (iOS 14+) |
fbclid | Meta / Facebook click ID |
fbc | Meta CAPI browser cookie |
fbp | Meta pixel cookie |
msclkid | Microsoft Ads click ID (the older spelling msclickid is also accepted) |
ttcid | TikTok click ID |
yclid | Yandex click ID |
obcid | Outbrain click ID |
li_fat_id | LinkedIn first-party ad tracking |
tblci | Taboola click ID |
twclid | X / Twitter click ID |
cid | Generic client ID |
current_url | Landing page URL (URL-encoded values are decoded) |
user_agent | User-agent string |
ip | Origin IP address |
device | desktop / mobile / tablet |
layer | Custom layer / segment label |
form | Form ID |
Read-only fields returned by get-customer that Mumble fills automatically: mumclid (Mumble click ID), ctwa_clid (Click-to-WhatsApp ad click ID), ad_id, and bsuid (WhatsApp business-scoped user ID). Sending them on create or edit has no effect.
Support
Questions or need higher rate limits? Email support@mumble.co.il.