The 5 Minute
Time-Based Workflow (or 15 Minute, or 30 Minute…)
Salesforce workflows come
in 2 flavors – real time and time-based workflows. Time-based workflows
are evaluated at the time interval you set – some number of hours or days after
another date or time field on the record. But you can’t set any time increment
less than an hour… or can you?
But I’m an impatient
guy. Sometimes, I don’t want a workflow to fire right now, but I can’t
wait an hour. There may be some business processes that need to be
completed in 5 minutes, or half an hour.
For example – our Sales
Reps may make several changes to an Opportunity over the course of 15 minutes,
but I don’t want to send workflow update emails after every change. But
it is important that the Sales Manager is notified as soon as possible.
So I’d like to send a workflow email 20 minutes after the last change.
Or, like in my Dynamic
Reports object (described on this blog), I have implemented a function that
allows a user to edit a value in an editable list view, refresh their screen
and run a report. Five minutes after they run that report, I want to wipe
out the value they used, so that other users can use this function.
I’ll admit that I found
this tip someplace out here on the WWW, but I can’t recall exactly where. So if
it’s your idea I’m borrowing, thank you!
To create a workflow rule
that fires in less than one hour, you have to trick Salesforce.
First, on the object that
you need the workflow on, create a new custom formula field that
evaluates to a Date/Time value. I called my field Trigger Time 05,
meaning that it’s a time trigger that I use to fire a workflow in 5 minutes.
What Trigger Time 05
actually does is saves a Date / Time value to your record that is 55 minutes in
the past. If you save your record at 3:00 pm, the value in Trigger Time
05 will be 2:05 pm.
The formula for Trigger
Time 05 =
(Now() – 0.038)
Then, you write a Time
Based Workflow rule that fires 1 hour after Trigger Time 05.
So, one hour after a time 55 minutes ago… is 5 minutes from now!
If you have multiple time
intervals you need workflows to fire at, you’ll need to create multiple Trigger
Time formula fields, like Trigger Time 05, Trigger Time 15, Trigger Time 30,
etc.
I have found that the
time intervals that the workflow rules aren’t exactly five minutes, but they
are pretty close.
As with many of the other
custom formula fields I’ve mentioned on this blog, you’ll want to make this
field accessible to all users, but don’t put it on any page layouts.
Here’s a chart that shows
the value you’ll need to subtract from Now() for each 5 minute interval.
Value in Formula
|
Minutes Ago
|
Will Fire In
|
||
0.04145
|
60
|
Minutes
|
0
|
Minutes
|
0.03800
|
55
|
Minutes
|
5
|
Minutes
|
0.03455
|
50
|
Minutes
|
10
|
Minutes
|
0.03109
|
45
|
Minutes
|
15
|
Minutes
|
0.02764
|
40
|
Minutes
|
20
|
Minutes
|
0.02418
|
35
|
Minutes
|
25
|
Minutes
|
0.02073
|
30
|
Minutes
|
30
|
Minutes
|
0.01727
|
25
|
Minutes
|
35
|
Minutes
|
0.01382
|
20
|
Minutes
|
40
|
Minutes
|
0.01036
|
15
|
Minutes
|
45
|
Minutes
|
0.00691
|
10
|
Minutes
|
50
|
Minutes
|
0.00345
|
5
|
Minutes
|
55
|
Minutes
|
0.00069
|
1
|
Minute
|
59
|
Minutes
|
No comments:
Post a Comment