Outgoing email configuration
Unblu can be configured to send emails in a number of situations.
SMTP configuration
To send emails from the Unblu server, you must first configure an SMTP server. This can be done either globally or per account.
When the configuration property com.unblu.mail.smtp.account.enabled is set to true
, the global settings are ignored. Instead, Unblu uses the account-level settings.
If you have multiple accounts, most of which share the same SMTP configuration, you can set the configuration property to true
on the account that have a different configuration. That way, the other accounts can share the global configuration thanks to the configuration cascade. If you set the configuration property to true
globally, you would have to configure each account’s SMTP settings individually.
Emails
The Unblu server can send a number of different emails:
-
Email containing a generated password
-
Push notification email about a new message from an anonymous visitor
-
Push notification email about a new message from an authenticated user
-
Push notification email about an Incoming call
-
Push notification email about a Missed call
Each email has its own template with various configuration properties and text properties.
Log of conversation messages sent by email
The concierge offboarding step Send log via mail allows the visitor to request a copy of the messages exchanged during a conversation by email.
Configuration properties:
-
com.unblu.conversation.messagelog.mail.senderEmail: If not specified, the
fromAddress
of the SMTP settings is used.
Text properties:
-
com.unblu.conversation.messagelog.mail.logEntryFormat with the following text arguments:
-
senderName
: The name of the person who sent a message. The value used is the sender’s display name. -
senderPersonId
: The ID of the person who sent a message. -
recipientsPersonIds
: The IDs of the recipients of the message. -
sendUtcTime
: The UTC time the message was sent. -
serverUtcTime
: The UTC time the server received the message. -
messageText
: The text contents of the message.
-
The subject
and bodyTop
text properties both provide the following text arguments:
-
conversationId
: The ID of the conversation. -
participantNames
: The names of the conversation participants. The values used are the participants' display names. -
recipientName
: The name of the person receiving the email.
The bodyTop
text property also provides the following text arguments:
-
recipientEmail
: The address the email was sent to. -
recipientPhone
: The phone number of the person receiving the email.
Example output:
Conversation message log for conversation with ${participantNames} (1)
Hello,
Here is the message log you requested:
${serverUtcTime} ${senderName}: ${messageText}
${serverUtcTime} ${senderName}: ${messageText}
${serverUtcTime} ${senderName}: ${messageText}
Best regards,
The Unblu team
1 | This is the subject of the email, not part of the email body. |
Visitor invitation email
The visitor invitation email is sent when an agent invites a customer to join a conversation by email.
Configuration properties:
-
com.unblu.core.invitationmail.sender: The default value is
"info@unblu.com"
.
Text properties:
-
com.unblu.core.invitationmail.body with the following text arguments:
-
inviterName
: The name of the person who created the invitation. The value used is the person’s display name. -
inviterEmail
: The email address of the person who created the invitation. -
topic
: The topic of the conversation. -
scheduledTime
: The date and time when the conversation is supposed to start. -
timeZone
: The time zone ofscheduledTime
. -
link
: A link that opens conversation in the Visitor Desk. The link redeems the invitation and can only be used once. -
inviteeName
: The name of the person invited. -
inviteeEmail
: The email address of the person invited.
-
Example output:
Conversation invitation (1)
Hello,
You are invited to join a conversation with ${inviterName}.
Please click the link below to join:
${link}
1 | This is the subject of the email, not part of the email body. |
New assignment request
When a new assignment request is presented to the queue, it is possible to configure Unblu to get a mail
Configuration properties:
-
com.unblu.core.mail_notification.newAssignmentRequestNotification.enabled: Enables or disables the feature.
-
com.unblu.core.mail_notification.newAssignmentRequestNotification.mail.senderEmail: If not specified, the
fromAddress
of the SMTP settings is used. -
com.unblu.core.mail_notification.newAssignmentRequestNotification.mail.replyToEmail
-
com.unblu.core.mail_notification.newAssignmentRequestNotification.mail.bccEmails
Text properties:
-
com.unblu.core.mail_notification.newAssignmentRequestNotification.mail.subject
-
com.unblu.core.mail_notification.newAssignmentRequestNotification.mail.bodyTop
-
com.unblu.core.mail_notification.newAssignmentRequestNotification.mail.bodyBottomAutoTriggered
-
com.unblu.core.mail_notification.newAssignmentRequestNotification.mail.bodyFooter
Example output:
New assignment request from ${visitorName} (1)
Hello,
There is a new assignment request
In: ${targetName}
From: ${visitorName}
Initial engagement URL: ${initialEngagementUrl}
Language: ${visitorLanguage}
Location: ${visitorLocationInfo}
System: ${visitorOs}
Browser: ${visitorBrowser}
Links:
Agent Desk: ${acceptAgentDeskLink}
Single Conversation Desk: ${acceptAgentDeskSingleLink}
This email was automatically triggered by the system.
Best regards,
Your support team
1 | This is the subject of the email, not part of the email body. |
Password reset email
The password reset email is sent when a user clicks on the "Forgot password?" link in the login form.
Configuration properties:
-
com.unblu.core.server.core.mail.PasswordResetLinkMail.senderEmail: If not specified, the
fromAddress
of the SMTP settings is used. -
com.unblu.core.server.core.mail.PasswordResetLinkMail.replyToEmail
-
com.unblu.core.server.core.mail.PasswordResetLinkMail.bccEmails
Text properties:
-
com.unblu.core.server.core.mail.PasswordResetLinkMail.subject
-
com.unblu.core.server.core.mail.PasswordResetLinkMail.bodyTop with the following text arguments:
-
userName
: The user’s username. -
passwordLink
: A link to the page where the user may reset their password. -
recipientEmail
: The address the email was sent to.
-
-
com.unblu.core.server.core.mail.PasswordResetLinkMail.bodyBottomAutoTriggered
-
com.unblu.core.server.core.mail.PasswordResetLinkMail.bodyFooter
Example output:
Your password reset request (1)
Dear ${userName},
A password reset link was requested for your account.
Please click the following link to generate a new password:
${passwordLink}
This link is valid for 24 hours.
This email was automatically triggered by the system or an administrator.
Have a great day!
The Unblu team
1 | This is the subject of the email, not part of the email body. |
Generated password
In the Users section of the Account Configuration interface, admins and superadmins can generate a new random password for a user and have it sent to the user by email. This is the template for that email.
Configuration properties:
-
com.unblu.core.server.core.mail.GeneratedPasswordMail.senderEmail: If not specified, the
fromAddress
of the SMTP settings is used. -
com.unblu.core.server.core.mail.GeneratedPasswordMail.replyToEmail
-
com.unblu.core.server.core.mail.GeneratedPasswordMail.bccEmails
Text properties:
-
com.unblu.core.server.core.mail.GeneratedPasswordMail.subject
-
com.unblu.core.server.core.mail.GeneratedPasswordMail.bodyTop with the following text arguments:
-
firstName
: The user’s first name. -
lastName
: The user’s last name. -
userName
: The user’s username. -
generatedPassword
: The new password generated for the user. -
recipientEmail
: The address the email was sent to. -
agentDeskUrl
: The URL to access the Agent Desk. This lets agents know which systems they’ve been sent a new password for.
-
-
com.unblu.core.server.core.mail.GeneratedPasswordMail.bodyBottomAutoTriggered
-
com.unblu.core.server.core.mail.GeneratedPasswordMail.bodyFooter
Example output:
New password generated (1)
Dear ${firstName} ${lastName},
A new password has been generated for your account on ${agentDeskUrl}.
Username: ${userName}
New password: ${generatedPassword}
This email was automatically triggered by the system or an administrator.
Have a great day!
The Unblu team.
1 | This is the subject of the email, not part of the email body. |
Push notification emails
Email is one of the channels that can be used for push notifications. There are four events that can trigger push notifications:
Each event has its own email template with its own set of customizable configuration and text properties.
Push notifications via email must be enabled in general with com.unblu.core.push_notification.mail.enableEmailPushNotification. Each event has an additional configuration property to enable that specific push notification email.
New message from an anonymous visitor
This email is sent when new messages are received from an anonymous visitor.
Configuration properties:
-
com.unblu.core.push_notification.mail.enableEmailNewMessagesPushNotification: Enables the feature.
-
com.unblu.core.push_notification.mail.messages.anonymous.senderEmail: If not specified, the
fromAddress
from the SMTP settings is used. -
com.unblu.core.push_notification.mail.messages.anonymous.replyToEmail
-
com.unblu.core.push_notification.mail.messages.anonymous.bccEmails
Text properties:
The subject
and bodyTop
text properties both have the following text arguments:
-
notificationCount
: The number of unread messages the recipient has in the conversation in question. -
recipientNotificationCount
: The number of unread the recipient has across all conversations. -
lastMessageText
: The text of the last message sent to a conversation. -
lastMessageSender
: The name of the person who sent the last message. The value used is the sender’s display name. -
conversationUrl
: A link to open the conversation in the Visitor Desk. -
recipientName
: The name of the person receiving the email. The value used is the recipient’s display name.
The bodyTop
text property also provides the following text argument:
-
recipientEmail
: The address the email was sent to.
Example output:
${notificationCount} new messages from ${lastMessageSender} (1)
Hello,
You have a new message:
${lastMessageSender}: ${lastMessageText}.
You have a total of ${notificationCount} unread messages in this conversation.
To open the conversation again, please visit ${conversationUrl}.
This email was automatically triggered by the system.
Best regards,
The Unblu team
1 | This is the subject of the email, not part of the email body. |
New message from an authenticated user
This email is sent when new messages are received from an authenticated user.
Configuration properties:
-
com.unblu.core.push_notification.mail.enableEmailNewMessagesPushNotification: Enables the feature.
-
com.unblu.core.push_notification.mail.messages.authenticated.senderEmail: If not specified, the
fromAddress
from the SMTP settings is used. -
com.unblu.core.push_notification.mail.messages.authenticated.replyToEmail
-
com.unblu.core.push_notification.mail.messages.authenticated.bccEmails
Text properties:
The subject
and bodyTop
text properties both provide the following text arguments:
-
notificationCount
: The number of unread messages the recipient has in the conversation in question. -
recipientNotificationCount
: The number of unread messages the recipient has across all conversations. -
lastMessageText
: The text of the last message sent to a conversation. -
lastMessageSender
: The name of the person who sent the last message. The value used is the sender’s display name. -
conversationId
: The ID of the conversation in question. -
recipientName
: The name of the receiving the email. The value used is the recipient’s display name.
The bodyTop
text property also provides the following text argument:
-
recipientEmail
: The address the email was sent to.
Example output:
${notificationCount} new messages from ${lastMessageSender} (1)
Hello,
You have a new message:
${lastMessageSender}: ${lastMessageText}.
You have a total of ${notificationCount} unread messages in this conversation.
This email was automatically triggered by the system.
Best regards,
The Unblu team
1 | This is the subject of the email, not part of the email body. |
Incoming call
This push notification email is sent when a call is started.
Configuration properties:
-
com.unblu.core.push_notification.mail.enableEmailIncomingCallPushNotification: Enables the feature.
-
com.unblu.core.push_notification.mail.call.senderEmail: If not specified, the
fromAddress
from the SMTP settings is used.
Text properties:
The subject
and bodyTop
text properties both provide the following text arguments:
-
callType
: The type of call initiated, that is, "audio" or "video". -
callInitiator
: The name of the person who initiated the call. The value used is the initiator’s display name. -
conversationId
: The ID of the conversation in question.
The bodyTop
text property also provides the following text argument:
-
recipientEmail
: The address the email was sent to.
Example output:
Incoming call from ${callInitiator} (1)
Hello,
${callInitiator} tried to start a ${callType} with you.
This email was automatically triggered by the system.
Best regards,
The Unblu team
1 | This is the subject of the email, not part of the email body. |
Missed call
This push notification email is sent when someone was called but they did not answer.
Configuration properties:
-
com.unblu.core.push_notification.mail.enableEmailMissedCallPushNotification: Enables the feature.
-
com.unblu.core.push_notification.mail.call.missed.senderEmail: If not specified, the
fromAddress
from the SMTP settings is used. -
com.unblu.core.push_notification.mail.call.missed.replyToEmail
Text properties:
The subject
and bodyTop
text properties both provide the following text arguments:
-
callType
: The type of call missed, that is, "audio" or "video". -
callInitiator
: The name of the person who initiated the missed call. The value used is the initiator’s display name. -
conversationId
: The ID of the conversation in question.
The bodyTop
text property also provides the following text argument:
-
recipientEmail
: The address the email was sent to.
Example output:
Missed call from ${callInitiator} (1)
Hello,
${callInitiator} tried to start a ${callType} with you.
This email was automatically triggered by the system.
Best regards,
The Unblu team
1 | This is the subject of the email, not part of the email body. |
Troubleshooting
By setting the value of the configuration property com.unblu.platform.server.mail.internal.MailService.logOnly to true
, outgoing emails are logged with an info
log entry with the mail content instead of being sent. This can be helpful in determining whether an error is due to a misconfiguration of Unblu or the result of an issue with the SMTP server.