PostMessages
Controlling LeadDesk from within Customer Contact Card
A customized contact card can communicate with LeadDesk using a simple postMessage Javascript command. For example:
function hangUp() {
parent.postMessage(JSON.stringify({“action”:“hangup”}), document.referrer);
}
function selectReason(reasonId) {
parent.postMessage(JSON.stringify({“action”:“select_reason”,“params”: {“id”: reasonId}}), document.referrer);
}
Please note that as the document.referrer is used, one the user traverses to another page inside the original IFrame, the original document.referrer value must be passed to that page and also to next pages. That way the targetOrigin parameter of postMessage can be set accordingly and the messages reach the intended target. Supported commands
Action (“action”) | Parameters (“params”) | Description |
call | {“params”: {“phone_number”: “{phone}”, call_id”: {call_logs_id}, “customer_id”: {customers_id}, “auto_call”: true} | Making a call with phone number OR call_logs.id OR customers.id |
hangup | Hang up the active call | |
close | {“target”: “call_dialog”} | Close the call dialog |
close | {“target”: “full_window_campaign_url”} | Close the full window (call dialog remains open) |
select_reason | {“id”: } | Select a call ending reason by id |
continue_call_recording | Continue call recording | |
pause_call_recording | Pause call recording | |
start_voice_receipt_recording | Start voice receipt recording | |
stop_voice_receipt_recording | Stop voice receipt recording | |
request_full_window | Request full window display for the iframe (will be displayed when call dialog opens if there is a call ongoing). So the iframe page can safely request this immediately after loading. | |
force_full_window | Force full window display for the iframe immediately (even if there is no call ongoing). This should not be generally used as this can break the UI in certain situations. Use “request_full_window” instead. | |
delete_call_log | {“call_log_id”: } | Deletes row from call_logs by given id (Call state must be no_answer) |
Events delivered by postMessage
Type (“type”) | Data (“data”) | Description |
callLineRinging | {call_log_id: } | Event sent when phone call changes to ringing state. |
callLineIdle | {call_log_id: } | Event sent when phone call changes to idle state. This happens every time page is initialized and when hangup is called. |
callLineOn | {call_log_id: } | Event sent when phone call changes to online (answered) state. |
recStarted | {file: } | Event sent when order receipt recording is started |
recStopped | {file: } | Event sent when order receipt recording is stopped |
recCancelled | {file: } | Event sent when order receipt recording is cancelled |