Berg and I have slowly been transitioning us over from our old Solr based Automations, DynamicLists, and Segmentations (I'll refer to all three just as Automations to keep things simple) to our new rules engine that uses queues, and now is probably a good time to explain to everyone how it works, and how its different from our old way.
The way it used to work for Automations is we had background jobs that ran every so often and matched everyone in the account all at once. As a result we were able to show in the Pardot interface when these jobs last ran. This approach worked great for small and medium sized accounts, but completely fell apart for larger accounts.
The new way we process Automations we no longer have massive background jobs that run in each account. Instead whenever a prospect changes (this could be anything from a prospect viewing a web page, a CRM sync, an opportunity changed that is related to a prospect etc..), we push the prospect into a
Queue. We then have a cluster of workers which pull prospects off of the other end of the queue, process all the relevant Automations and takes the required actions based on the out come of each (add/remove from dynamic list, or apply matched automation/segmentation actions).
Generally the time from when a prospect change happens until that prospect has had all the relevant rules processed, is very quick. For internal reference, most cases it is well within 10 seconds, however If there is a mass influx of changes to a specific shard, there can be longer delays. At this point I don't think we want to express any specific time of how quickly automations will run to clients, in the future we may have some kind of SLAs, but for now no specific time. I'll be adding tools to the app so support people can check the status of the Queue for any backlogs in the system if questions of slow rules come up.
Since there are no longer massive jobs processing accounts every so often, we can no longer show a 'last processed' or 'last run at' timestamp in the app. I believe I've removed all of these from the app, if you see any left around please let me know and I can remove it.
What if you want to force a refresh of a dynamic list? On the dynamic list read screen there should be a "refresh list" link that you can click. This will queue everyone in the account and start processing them. Once its completed processing all of the prospects it queued, it should send out a notification email saying it has completed.
What if you want to force a refresh of an automation? At this point time, there is no tool in the app to do this. Soon, it will work exactly like the dynamic list one. You click a link, you wait some time, and then an email shows up in your inbox saying it has completed. In the mean time you can PM me and we can make something happen.
What else is coming soon related to this?
- Graphs showing Queue backlogs per shard or per account. I'll send out another email when these are ready for support.
- When you create a new or edit an existing Automation, DynamicList, or Segmentation, the first time it "runs" you'll probably eventually see some fancy progress bar showing how far along it is processing everyone in the account.
I think that covers it, if you have any questions please reply and we can have a Q/A.
Stephen