Intro
We offer you the ability to send all automatic emails meant for contacts to your own server via a callback URL, instead of sending the email through our email infrastructure. By sending the emails via your own email server infrastructure or helpdesk system, you get total control over the sender identity and the return path.
Enable email callback URL
- Go to the email callback API settings in the widget editor under Chat > Advanced.
- Check the Custom email API box
Request documentation
Type | Value | Description |
Request Method | POST | |
Request Header | API-SECURITY-TOKEN | Contains your custom security token |
Request Body | JSON |
JSON body
Name | Type | Description |
html | String | HTML version of the email body |
receiver | String | Email address of the recipient |
subject | String | Subject of the email |
text | String | Raw text email |
email_type | String | The type of email Userlike sends, it’s either "transcript" or "reauth" |
context | String | Important information that the email contains. Each email_type has its own context, scroll down to Transcript contextand Reauth context to learn more |
An example of a message object:
javascript{ "body": "Hi there! How do I install this?", "conversation": { "id": 8982 }, "conversation_id": 8982, "display_name": "Contact", "event": null, "id": "8982.12509.48079", "marked_read_contact": true, "marked_read_operator": true, "msgid": "8982.12509.48079", "name": "Contact", "operator_display_name": "", "operator_id": null, "operator_name": "", "part_id": 12509, "reference": null, "sender": { "id": 5882, "type": "contact" }, "sent_at": "2020-07-09T12:18:05.220985Z", "sent_at_time": "12:18:05.220985", "state": { "error_code": null, "message": "Read by user", "type": 4 }, "type": "message", "url": null }
Transcript context
Transcript emails contain all messages sent during a Conversation as well as survey answers, feedback, ratings and other Conversation events. Their email_type is set to "transcript".
Name | Type | Description |
messages | Array | An array of all messages sent during a Conversation. Each message is an object |
conversation_url | String | A link that brings your contacts back to the conversation. Note that the link can be missing if no inbound URL is defined in the Widget’s settings. |
Reauth context
Reauth emails contain a link and a token with which contacts can authenticate themselves.
Name | Type | Description |
reauth_link | String | A link that authenticates your contacts when they click on it. Note that the link can be missing if no inbound URL is defined in the Widget’s settings. |
reauth_token | String | A token that contacts can enter in the Widget to authenticate, for example when no reauth link is displayed |
Python example using the Flask framework
javascriptfrom flask import Flask, request import json from flask_mail import Mail, Message app = Flask(name) Example with Gmail server app.config['MAIL_SERVER']='smtp.gmail.com' app.config['MAIL_PORT'] = 465 app.config['MAIL_USERNAME'] = 'your-email-address@gmail.com' app.config['MAIL_PASSWORD'] = '*****' app.config['MAIL_USE_TLS'] = False app.config['MAIL_USE_SSL'] = True mail = Mail(app) @app.route('/email', methods=['POST']) def email_callback(): if len(request.data) > 0: data = json.loads(request.data) email_contact = str(data["receiver"]) email_subject = str(data["subject"]) msg = Message(email_subject, sender = 'your-email-address@gmail.com', recipients = [email_contact]) msg.body = data["text"] msg.html = data["html"] mail.send(msg) return "E-mail sent" else: return "Connected" if == 'main': app.run(port=8000, debug=True)