Release Notes

A list of our consulting and application partners.

Subscriber Timeline

The subscriber timeline component shows audit information within a lightning component.

Custom Transactional Email Variables

Allow custom variables to be passed into a transactional email via a flow or via code. This bypasses the mapping field for the transactional email.

This feature is only available when calling Transactional Emails via code and is intended for advanced users.

Example code that passes across values to a Campaign Monitor field (note that the {{Id.valueOf}} are just examples and will need to be changed).

{noformat}List<wbsendit.SendSmartEmail.SendSmartEmailRequest> vSendSmartEmailRequestList = new List<wbsendit.SendSmartEmail.SendSmartEmailRequest>();
wbsendit.SendSmartEmail.SendSmartEmailRequest vSendSmartEmailRequest = new wbsendit.SendSmartEmail.SendSmartEmailRequest();
vSendSmartEmailRequest.RootObject = Id.valueOf('500JW000009e5emYAA'); // E.g. the contact Id.
vSendSmartEmailRequest.SmartEmailId = Id.valueOf('a0CJW00000fgry62AA'); // The individual smart email template.
Map<String, String> vMap = new Map<String, String>();
vMap.put('variableName', 'THIS IS CUSTOM VALUE!');
vSendSmartEmailRequest.customMappings = vMap; = true;

Improve Maintenance Notifications

We have made some improvements around maintenance notifications

Accept 1, 0, yes, no for boolean values.

We have made changes so that field mappings to a Salesforce boolean field accepts 1, 0, yes, no values.

Bypass queue when sending transactional emails

This update allows you to bypass the queue in Salesforce when sending transactional emails.

Support embedded quotes within transactional email fields

Previously using a combination of brackets and quotes <strong test="one"> would cause the transactional email to fail. This update improves the encoding of the data before being sent to Campaign Monitor.

Negative numbers in Salesforce reports

This update improves support for negative numbers in Salesforce reports when importing via the import wizard.

Screen size issues with Field mapping transactional

Support for longer field names in transactional mapped fields.

Report overlapping "replace" import wizards jobs

This update improves support when working with the replace option on imports.

Support Platform User with the Import Wizard

This update provides added support for Platform User working with the Import Wizard.

Ignore field mappings when subscriber not active

This improvement will ignore field mappings when the subscriber is not active and syncing from Campaign Monitor to Salesforce.

Make syncing suppression list optional

The suppression list is required in Salesforce to prevent subscribers in a 'Deleted' status from being accidentally 'Resubscribed' if they are on the Campaign Monitor suppression. list.

In some cases, the suppression list can be very large, making it impractical to sync the list. The release enables the option to sync the Campaign Monitor suppression list, which can save storage in Salesforce.

Change the number of linked campaigns created

Currently we limit the number of Salesforce campaigns created each time the sync runs to five. This is largely to be respectful of Salesforce limits as each campaign can have multiple members. Should you wish this setting can now be changed in our maitenance settings.

Make syncing suppression list optional

In some cases, the suppression list can be very large, making it impractical to sync to Salesforce. The release enables existing customers the option to turn off the Campaign Monitor suppression list sync, which can save storage in Salesforce. For new installs the option will be disabled by default.

Make it easier to see if subscriber rules are enabled

This minor change provide a banner to clearly show when a subscriber rule is enabled.

Make syncing suppression list optional

In certain instances, the size of the suppression list may be so extensive that syncing it becomes impractical. To address this concern, our latest release now provides the flexibility to choose whether or not to synchronize the Campaign Monitor suppression list. This feature could prove valuable in conserving Salesforce storage space.

Allow synchronous calls for add contact and lead invocable actions

Allow the add contact and lead invocable actions to be called synchronously. This can be enabled by setting the direct parameter on the invocable method to true.

Delete subscriber list via invocable action

This new invokable action allows you to delete one subscriber list at a time. It will also delete all subscriber members, it should be fully understood and used with caution.

SMS Consent To Track

This new option allows you to map SMS Consent To Track field from Salesforce to Campaign Monitor via our import wizard or field mappings.

Updates to Member Detail Page

Minor update to the member detail page to make the screen more consistent with our other screens.

Delete unused Apex Schedules

If a Salesforce user no longer has any active import wizard schedules we will detect and remove the corresponding Apex Schedule Job.

Add expiry date to subscriber import report type

To help with reporting we have added the expiry date field to the subscriber import report type and subscriber import report.

Audit Modal on Subscriber Lists Screens

This update adds the audit screen to the subscriber list pages.

Improve reporting suppressed emails on Import Wizard

This update improves the results page you see as a dropdown on the import wizard.

Full refresh just for email tracking history

Could we add something to maintenance to allow a full refresh for just email tracking history?

SMS Support

Campaign Monitor now offers SMS as one of their features. Although initially the feature is only available on certain accounts and countries. SMS support means that you can use our import wizard or field mappings feature to add a mobile number from Salesforce to a Campaign Monitor subscriber. In addition to help with formatting via our general settings tab you can ensure the correct country code is being added to the data we pass to Campaign Monitor.

Support Journeys with a large number of emails

Campaign Monitor journeys can contain multilple emails. This update provides support should there be a large number of emails contained within a single journey.

Improve auditing of subscriber actions

This update improves the audit information we capture.

Prevent same Import Wizard from running in parallel

It is possible in rare circumstances that the import wizard could run the same import twice. To help we have put in some extra checks to prevent this from happening.

General Styling Improvements

General styling improvements when Salesforce is in comfy mode.

General Styling Improvements

General styling improvements when Salesforce is in comfy mode.

Better messaging when an import wizard report exceeds 50,000 records

Salesforce has a hard limit of 50,000 records when working with reports. If you schedule the import wizard to work with a Salesforce report is possible that overtime you might hit this limit. This improvement will provide better messaging if the limit is hit via our maintenance tab, lightning notifications and on the schedule itself.

Add exact date and time to summary view

This change to our lightning component will display the exact date/time of the activity when hovering over the relative date/time value when in a summary view.

Better support for formatting currency fields

This update aids formatting currency when passing data from Salesforce to Campaign Monitor.

Improve audit logging for schedules

This improvement adds extra logging when updating schedules.

Better message around transactional invalid message

This update provides better messaging for smart emails. Specifically should a status not be updated due to an incorrect Id or custom authentication not beening configured correctly.

Set an import wizard expiry date

This update allows an expiry date to be set in the advanced section of the import wizard.

Add category to invokable actions

To help when using flows our invokable actions will appear under the category Campaign Monitor.

Warning when too many reports scheduled to run via Import Wizard

We will now show warnings in maintenance when too many reports are scheduled to run via Import Wizard

Warn user that scheduled jobs may be delayed

Warn user that scheduled jobs may be delayed if too many are set at the same time.

Support email notification for maintenance messages

The update allows a Salesforce user to set an email address to receive an email notification when a log. entry is created in maintenance. To learn more please click here.

Remove queue items from Salesforce recycle bin

Queue items are used to manage requests to Campaign Monitor. This improvement removes queue items from Salesforce recycle bin to avoid it being cluttered with redundant information.

Minor styling improvement for status labels

Minor update improving how our status icons are formatted.

Improved page header styling

Minor improvements to align the page layout header.

Audit Deleted Subscriber Lists from within Salesforce

This improvement creates an entry in the audit log when a subscriber list is deleted from Salesforce. This will help identify who deleted the list and when.

Improve sidebar menu icons

We have Improved our sidebar menu icons to make them clearer.

Allow Email Activity & Journeys lightning component to be tuned.

The Email & Journey email component currently has a set limit of 10 subscription lists a contact can be on before we need to apply a list filter. The reason we have to a filter when a person is on more than 10 lists is to be respectful of Salesforce limits. However, the limit of ten can now be tuned via our maintenace tab.

Improve verification validation process

Before you can connect Salesforce to Campaign Monitor you must have a verified Campaign Monitor account. Often this is overlooked, to help we have added some additional messaging and support to help with this process.

Improve error message when Import Wizard report is deleted

If the underlying report for an import wizard is deleted, an error message will be sent to the primary user with the Salesforce Id of the Import Wizard job and the report that was deleted. This will make it easier to find which import job is failing.

Allow the number of scheduled import jobs to be tuned

If you have lots of import wizard scheduled they can compete for slots to process and Salesforce resource. This update allows to tune, from the maintenance screen, how many imports should run at the same time. If the number is exceeded then any imports missed will run on the next schedule.

Audit Improvements

Post some updates on Campaign Monitor API we have been able to add the date a subscriber joins a list to our audit screen.

Improve Audit history

Improved Subscriber Membership audit history

Salesforce Campaign and Campaign Member improvements.

Improved performance when adding and updating Salesforce campaigns and campaign members.

Improved logging when connecting to multiple clients

Improved logging when connecting to multiple clients. This improvement is primarily around troubleshooting connection issues where multiple Campaign Monitor clients are available for connecting.

Only create one Salesforce campaign member record

Previously if you had a lead and contact with the same email address, both would be linked as Salesforce campaign members to the linked campaign. This change means that only the contact record will result in a campaign member (essentially avoiding duplicate campaign members).

Add ability to tune system settings in Maintenance

Given the diverse customisations that can be applied to Salesforce, it may be required to tune selected backend settings to help with govenor limits. For example you might want to change the batch size of a particular job. To help we have added a screen which can be access via our maintenance tab to make these changes.

This operation is very advanced and should be fully understood before making any changes.

Improved error logging for async processing

Additional information has been added when reporting on any general async processing errors (this applies when performing bulk operations on contacts, leads and accounts where data may need to be synced with Campaign Monitor). The additional information will be available on the maintenance screen.

Limit number of campaign members synced

The new Campaign Monitor API now allows the number of campaigns returned to be filtered by date. This allows us to limit the number of campaign members synced each time the primary sync runs. Previously it would attempt to sync all members for all Campaigns for all time. Now it will only process campaigns that were sent in the last 365 days.

Improve error logging for transactional emails

We have added extra logging to help with transactional email errors. We recommend going to our options page ( within the Campaign Monitor admin app and clicking to enable debug logging. The additional information will be available on the maintenance screen.

Don't process mailing rates if stats are disabled

We no longer run mailing rates if the "Disable Campaigns and Tracking Stats" option is checked.

List View Validation

We have improved the validation of a list view when running the import wizard.

Exclude Bounces when adding via the import wizard

This improvement means we perform and additional check on records currently going through the bounced process in Campaign Monitor when the import wizard runs.

Improved logging

To help with debugging we have moved important information to the top of the log.

Support Campaign Monitor tags

Campaign Monitor allows you to set one or more tags against their Campaigns. This information will now be synced back to the Salesforce Campaign Monitor Campaign record. If you have chosen to automatically create Salesforce Campaigns we'll also update here as well.

Limit Campaigns returned into Salesforce

When the primary sync runs we create Campaign Monitor campaigns in Salesforce.  This new feature allows you to filter what campaigns are created in Salesforce either by a tag or the campaign date.

Allow a contact or lead to be unlinked from a membership record

This new feature allows you to easily remove the link between a susbcriber list membership record and a contact or lead. Simply click on a subscriber list membership record and the click on the icon next to the contact or lead to remove the link.

Open and Click rate precision

When displaying the open or click rate in Salesforce we now round the percentage to avoid too many decimal points.

Auto adjust email opt batch size

The email opt-out class is responsible for updating the standard email opt-out field on the contact or lead objects. Essentially our code is just setting the field to True or False based on Campaign Monitor data.  We will tune the batch size of this class if we detect a problem, usually because of other processes or custom code on the contact or lead objects.

Improve error handling of transactional emails

A general enhancement to error handling for transactional emails.

Disable syncing of Campaign Monitor Campaigns

You can now choose to disable the syncing of Campaign Monitor Campaigns in Salesforce via the options tab in general settings. Disabling the syncing of Campaign Monitor Campaigns will also stop email tracking history from being stored in Salesforce.

Set the contact or lead owner ID per list

You can now set the owner of contact or leads created by the integration at a list level. This can be set by adding a value for “OwnerId” within “Default Values” when creating contacts/leads.

Update Card Payment Method

We have improved the process within our application to allow customers to update the card details.

Date status changed

We have updated the label on our subscriber list membersip record to activity date. The date displays the last time the state of the subscriber was changed. E.g. active, unsubscribed etc.

Improve permission error reporting

Previously, if a user didn’t have access to certain fields, the error message would return “Insufficient permissions: secure query included inaccessible field”. With this improvement, the actual field name will be returned - making it easier to check which permissions the user is missing.

Improve timeout when viewing Campaign Monitor tab

This change improves the way we handle timouts when viewing the Campaign Monitor tab within Salesforce.

Show subject line of email

The subject line of an email will now be shown in the email template preview.

Bounces and Email Activity Detail

The email tracking history lightning component can now show bounced information. To see this simply click on activity details, which is available for campaign or journey email tracking history. The underlying email tracking history will need to be stored in Salesforce, so if this screen is empty it means that the email tracking history has not been synced or is stored in Salesforce.

Open rate and click rate on Email Tracking Component

The open and click rates will now be shown at the bottom of the email tracking component. The rates are calculated on the visible sents, opens and bounce statuses. For more information please see -

Add the BackgroundOperation permission to admin permission set

We have added the BackgroundOperation permission to our admin permission set. This will  allow users to view the background jobs.

Improve permission error messages when running primary sync

Previously, if the user didn’t have access to certain fields, the error message would return “Insufficient permissions: secure query included inaccessible field”. With this improvement, the actual field name should be returned - making it easier to check which permissions the user is missing.

Add marketing user check for users with full access permission set

When working with Salesforce Campaigns the marketing user checkbox needs to be checked. This is often missed even though the person affected is generally a Salesforce system administrator.  To help we have added the permission to our full access set to enable access to the Salesforce Campaign object.

Warn multiple replace import wizards

When working with a subscriber list you have the possibility of setting up more than one import wizard. If you have more than one import wizard and are also using our replace feature the two imports will compete. To help we now show a friendly warning with additional information if this happens.

Provide better messaging around inactive Import Wizard users

If the Salesforce user associated with the import wizard is inactive, this will now show within the status column. It makes it easier for users to see why an import might not be running.

Improve messaging when testing transactional emails

When testing a smart email we now check to make sure the example record matches the root object Id.

Resetting a sandbox will only disconnect from Campaign Monitor

We have improved the sandbox reset process using wbsendit.sendItAPI.resetSettings(); The improved proess will only disconnect from Campaign Monitor.  To learn more please click here.

Support mixed cased emails

Previously, when using transactional emails whilst creating tasks or email messages, only lower cased emails would be linked (Salesforce typically sets emails to lower case). This fix supports multi-cased emails when linking to a task or email message.

Tool tip look and feel has been improved

We have improved the styling of in-app tool tips.

Support semi-colons when using Salesforce report

Semi colons in Salesforce reports now have special treatment to allow them to be mapped across to Campaign Monitor.

Disconnect process

The disconnect process has now been improved to show that the sync has been properly disconnected.

Identify email address when sending a transactional email to multiple receipents

This feature adds a new field the smart email object in Salesforce called smart email receipent.  This will store the email address of the person the email was sent to.

Access the source report for the import wizard.

We have added an option to our an import wizard schedule to access the source Salesforce report with one click.

Preview Smart Email Template

You can now access the smart email template in Campaign Monitor via a button found on our Salesforce mappings screen.

Pick list values now use Salesforce labels

When a value is added to to Campaign Monitor we use the Salesforce label rather than the API name.

Create Salesforce emails when a smart email is sent

Previously you could choose to create a Salesforce task when a smart email was sent. This update allows to select a task or an email record to be stored in Salesforce.

Delete subscriber from list when purged directly from Campaign Monitor

Campaign Monitor now allows you to directly delete subscriber from a subscriber list in Campaign Monitor. When this is detected the associated subscriber list membership record in Salesforce is also deleted.

Refresh Transactional Emails Variables

In addition to a refresh button appearing on the Smart Email tab you can now refresh email variables on a specific template.

Add copy Id button to smart emails

To make it easier to copy the Salesforce ID from a smart email when using with flows or process builder we have added a copy button.

Transactional Global Action appears even if mappings have not been setup.

This minor change will stop a template appearing in a chatter global action if there is no receipients specified.

Smart email enhancements for task creation

We have improved how tasks are created when working with Smart Emails.

Support Unconfirmed States

Additional support added for Campaign Monitor subscribers unconfirmed status.

Notify users of maintenance messages

Using Salesforce inbuilt notifications we are able to alert users to different messages.

Create missing picklist values for SOQL queries

Create missing picklist values for SOQL queries. Previously picklist values were only created for imports based on Reports, Campaigns and List Views.

Trim white space when searching via email audit

Improved the audit search feature by removing extra spaces.

Notify users of maintenance messages

Improved message alerts providing our users with in app help.

Improved messaging for Campaign Monitor errors

We have improved error handling to show additional Campaign Monitor errors for example when a transactional email domain has not been registered.

Update Campaign Monitor App Icon in Classic

Minor update to update the Campaign Monitor App icon when using Salesforce classic.

Audit Log / Filtered Notifications

We have split our maintenance messages so that you can now see user changes under a new tab called audit.

Audit Log

The audit log is a new feature the helps administrators keep track of changes to settings or features.

Order maintenance messages by date

Order maintenance messages by date to make it easier to view recent log entries.

Improve automated page layout setup

We automatically update your Salesforce page layouts when you install our product. Some times we run into a conflict and one or more pages will not be updated. This change will make the process more robust. To learn more about page layouts please click here.

Uninstall Process

To help make the process of uninstalling our product as easy as possible, should the need arise, we have provided an automated process. Click here to learn more.

Automatic Segment Creation

As part of the import wizard you can now create a segment automatically to learn more click here.

Improve Email Tracking History

Some customers will have a number of email tracking history records. We continue to tune the underlying processes to make this as efficient as possible.

Smart Email Search

This new feature add a search bar to the smart email page making it easier to find a template, to learn more click here.

Validation for individual email addresses

The validation button will run a complete import from Campaign Monitor to Salesforce, it will return:

  1. Success - i.e. no validation errors when importing the subscriber from Campaign Monitor
  2. Campaign Monitor failure - this is a failure message returned form Campaign Monitor.
  3. Salesforce failure - a generic Salesforce error, like required field not populated.

To learn more click here.