Skip to main content

I am working on my first Agentforce Nonprofit implementation. My Data Processing Engine (DPE) definitions are set up and working. I built the flow to update our fundraising numbers overnight according to this Salesforce documentation: Set Up Automatic Updates For Fundraising Rollups in Nonprofit

. 

 

It's possible that it is working as expected, but it doesn't make sense to me. All three of my DPE definitions are working accurately, but the flow interview remains paused for 24 hours before completing. I set 24 hours as the Time Out length of time, but I don't think every run should wait to time out before completing. While it then completes before starting the next night's update and runs without any errors, I believe the specified Platform Event is intended to complete the flow much sooner. I am not a developer, so forgive me where I communicate this poorly, but I believe the wait element should resume and complete the batch process shortly after the third DPE definition completes. 

 

Maybe this is harmless, but I'm all about efficiency and best practices, so if anyone has some insight on this, I would love to hear it! 

 

Here's an over view of my flow:

Flow to update Fundraising calculations in AFNP stays paused for 24 hoursAnd my wait element for Batch Job Complete:image.pngResume Event Tab:image.pngWait Element for Time Out After a Day:image.pngResume Event Tab:image.png

4 answers
  1. Oct 26, 6:29 PM

    Your testing makes sense, Rhonda. This is a race condition with Wait elements on Platform Events: a paused interview only picks up events published after it reaches the Wait. If the third DPE finishes and publishes its event before the flow gets to the Wait, the event is missed and only the timeout path can move the flow forward. 

     

    Two good ways forward: 

    1. Keep your build and shorten the timeout. A 2-hour timeout is a reasonable safety net, as long as it's comfortably longer than your longest DPE run. Check a few run durations in Data Processing Engine monitoring and add some buffer. 

    2. Replace the Wait with a separate platform event-triggered flow that subscribes to the completion event and runs the final step. This never misses the event, because it doesn't depend on a paused interview already listening. 

     

     

    If option 1 gives you the results you need, it's fine. The only cost is a small delay and some paused interviews. Good call flagging the documentation with Salesforce.

0/9000