Widget & Inline Page
Classic - Distribution Engine Inline Page
Lightning - Distribution Engine Record Detail
Widget - Introduction
Adding Widget to a Lightning App
Adding Widget to a Lightning Page
Adding Widget to Salesforce Mobile
Adding Widget to a Classic Console
Adding Widget to Classic Homepage
Changing the Widget logout reason list
Before you Begin
Whats in the Package
Managed Package Licences
Leaving A Review
Upgrading Distribution Engine
Configure Distribution Engine
Create a Map
Territory Map Zoom Levels
Territories - Technical Details
Lead Matching - Introduction
Duplicate Rule Setup
Related Owner - Lead Matching
Lead matching vs lookup owner
Classifier Lead Matching Setup
Lead to Account/Contact/Lead Settings
Custom Classification - Introduction
Custom Classification - Synchronized Tag Collections
Lead Auto-Conversion - Introduction
Distribution Classifier - Introduction
Distribution Methods - Introduction
Standard Distributor Settings
Pull Distributor Settings
Trigger Distributor Settings
Manual Distributor Settings
Distributing from a Designated User
Distributor Team Member Filters
Distributor Sort Order
Advanced Filter Mode
Distributor Test Tool
Weighting and Caps
Tracking & SLAs
Distribution Teams Introduction
Distribution Process View
Out of Office
User Availability Toggle
Distribution Engine Running User
Licensed users list
Export & Import
Email Notifications - Introduction
Custom Email Notifications
Disabling Standard Email Notifications
Customising the Email Template
Disabling Custom Email Notifications
From Email Address
Email Notification as Flow
Assignment Simulator - Introduction
Configure Assignment Simulation
Assignment Simulator Result Explorer
Integrating InsideSales.com power dialer
Auto archive feature
Uploading tags via dataloader
Tuning Distribution Engine
Distribution Logs List
Territories Logs List
Lead Matching Logs List
Custom Classification Log List
Auto-Conversion Logs List
Object Sync Logs List
Scheduler Logs List
Archive Logs List
Exporting Log Data
Distribution Engine Details Object
Distribution Engine Dashboard
Reports - Leads and Distribution Logs
Skill Based Matching
Assigning Contacts - Pairing SDRs and AEs
Enforce Cap for Manually Assigned Records
Workflow Rule Examples
Timezone Bucket Formula
Has Activity Formula
Distribution Engine Details Formula
id Field to Text
Desktop or Mobile Notifications
Custom Assignment Rejection
Classify on Address Change
Process Builder Examples
Process Builder - Avoiding Clashes
Opportunity Assignment - Updating Related Accounts & Contacts
Rejection API Process
Assign License and Permission Set on Team Member Addition
Assign License on Team Member Addition
Tasks on Record Assignment by Distribution Engine
Information for New Admins
Out of Office API
Team Members API
DE Apex API Introduction
Apex Trigger Examples
Omni-Channel Presence Integration
Salesforce Presence Integration
Invalid Email trigger
Warnings and Errors
Health Checker Messages
Distributor Failures - Records on Hold
Apex CPU time limit exceeded
Timeout when deleting a Team Member or Distributor
Records Stuck / Not Being Assigned
Frequently Asked Questions
Legacy Widget - New status
Distribution Engine Aborted
Alerts not Firing
Distribution Engine Delayed
Can one Distributor Assign from Multiple Queues / Users?
Can't See Distribution Engine
Distribution Engine Not Running
Manual Shutdown of Distribution Engine
Exclude members from Holidays
Distribution Engine Health Checker Restart
Dashboard Running User Error
Assignments going to wrong user
Dragon beta release - install guide
Eagle upgrade process
Gorilla Upgrade Process
Hummingbird Upgrade Process
Impala Upgrade Process
Jellyfish Upgrade Process
Koala Upgrade Process
Llama Upgrade Process
Meerkat Upgrade Process
Grant Login Access
Upgrading Distribution Engine Steps
Distributors that are experiencing assignments errors and repeated failures are not shut down. Instead, records that are experiencing errors will be placed on 'hold'.
Distribution Engine will create a single distribution log for a particular record and will retain that log through all unsuccessful attempts at the assignment until the update is committed. If the number of failed attempts reaches a particular threshold the record will be placed in a hold status and excluded from further distribution cycles for a set amount of time. Once that time has passed assignment will be attempted again. Records on 'hold' can also be attempted again on request through the 'Distribution Logs' tab.
Distribution Engine - Distributor Failures
The health checker will run every hour and monitor the number of attempted assignments. If a particular threshold is reached a notification email will be sent to the users configured on Distribution Settings as well as NC-squared support.
Once the issue has been resolved (e.g. relaxing the validation rule, or fixing the records), you can then either wait for the records to be automatically retried or use the 'Retry All' feature on the Distribution Logs tab.
Records on Hold
The Distribution Logs tab will have information regarding any records that have been placed on hold. The error message can be seen in the Distribution logs sidepanel. Additionally, the sidepanel will describe how many attempts have been made when the first attempt was made and when the next attempt will be.
- Individual records can be removed from 'Hold' status by clicking on the 'Retry' button in the row menu or side panel.. After 'Retry' is clicked the record will attempt to assign in the next distribution cycle.
- If there are multiple records on hold, the 'Retry all' button will become available. The retry all function will remove up to 9000 records from Hold and they will attempt to assign in the next distribution cycle. If more than 9000 records are on hold, multiple clicks of 'Retry all' will be necessary.
Resolving Assignment Errors
Common sources of assignment errors are when custom automation fails, preventing the assignment from committing. If at all possible the Distribution Engine Running user should be excluded from custom automation to prevent clashes. The following articles give examples of how to exclude the running user for Triggers, Workflows, and Process Builder.
Other potential issues that would prevent record updates and resources on how to resolve them follow:
- "No such column 'lastvieweddate' on entity 'Lead'."
- Check for old API versions of components (https://success.salesforce.com/issues_view?id=a1p30000000T0tvAAC)
- "Operation not valid for this user type"
- Verify user permissions(https://salesforce.stackexchange.com/questions/23211/op-with-invalid-user-type-exception-error)
- UNABLE_TO_LOCK_ROW or "unable to obtain exclusive access to this record"
- Another process has the record locked so that it can make updates. Typically this will clear up after a few minutes and the assignment can be tried again. If not check for long running jobs in Salesforce -> Setup -> Apex Jobs.
- TRANSFER_REQUIRES_READ or "The new owner must have read permission"
- The intended team member or team members do not have read access to the object attempting to assign.
- The record attempting to assign is in violation of an active duplicate rule configured in Salesforce. Review Salesforce -> Setup -> Duplicate rules.
- "Value does not exist or does not match filter criteria."
- A lookup field on the record does not have a valid value - https://help.salesforce.com/articleView?id=000323968&type=1&mode=1
- "System.LimitException: Apex CPU time limit exceeded" -
- The combination of the number of records attempting to assign and the custom automation that starts after a record update is exceeding the Salesforce governor limit on Apex CPU time. The article on Apex CPU time limit exceeded provides suggestions and advice on how to resolve errors of this type.
If these suggestions do not resolve the errors or they happen continually please contact NC Squared, granting login access to enable us to diagnose the issue.