Skip to content

Build a customer outreach workflow with follow-up calls

Verified against source (12)

  • decision/DecisionStepTemplate.Fields.cs
  • decision/DecisionStep.cs
  • decision/ImportFormTemplate.cs
  • Config/ImportForm.config
  • Properties/Settings.settings
  • Decision/DecisionStepTemplate.Edit.xslt
  • Decision/DecisionStepTemplate.IfThen.xslt
  • Decision/DecisionStepTemplate.Polling.xslt
  • Decision/Decision.XmlToXslt.xslt
  • application/Enumerations.cs
  • Utilities/XsltFormatting.cs
  • process/Process.Fields.cs

Outreach programs live or die on follow-through: a customer who doesn’t answer the first call still needs a second and a third, on schedule, and someone needs to know when to stop trying. In this walkthrough you build a workflow that does the tracking for you. It puts an outbound call on a rep’s worklist, waits a day if the call doesn’t resolve the matter, queues a second call, waits a week, queues a third, and finally marks the case Unreachable. Reps just work their queue; the workflow decides what comes next.

Who it’s for: power users who build workflows for service, collections, or retention teams.

Prerequisites

  • Permission to create task templates, workflow templates, and process templates (the Templates menu).
  • A team (a label of people) to work the calls. See Worklists.
  • Workflow: task, if/then, polling, and advanced steps, with dependencies
  • Forms: the call task the rep completes
  • Worklists: where the calls appear for reps
  • Cases: the process that holds one customer’s outreach
  • Templates: repeatability, which lets one task template serve all three calls

The process reads top to bottom: call, check, wait, call again. Every Resolved? check that comes back yes ends the workflow; the last one that comes back no marks the customer unreachable. Each shape becomes a workflow step:

Step Step type What it does
Outbound Call Add a Task Creates an Outbound Call task on a rep’s worklist.
Resolved? Add an If/Then Statement Checks whether the rep recorded the outcome as Resolved.
Wait a day Add a Polling Step Waits until a day has passed.
Second Call Add a Task Creates another Outbound Call task, named Second Call.
Resolved? Add an If/Then Statement Checks the second call’s outcome.
Wait a week Add a Polling Step Waits until a week has passed.
Third Call Add a Task Creates another Outbound Call task, named Third Call.
Resolved? Add an If/Then Statement Checks the third call’s outcome.
Unreachable Add an Advanced Step Sets the process status to Unreachable.

From Templates > Tasks, add a task template named Outbound Call:

  • Applies To: Process.
  • Repeatable: Many per parent. All three calls use this one template, so the process must be allowed more than one. With One per parent, the second and third call steps would find the first call’s task and reuse it instead of creating a new one.
  • Add a dropdown question named Outcome with values such as Resolved, No Answer, and Left Message, plus any notes fields the rep needs.

QBO creates a worklist for the new task template automatically, so every call task becomes a work item. On the worklist template, set Assignment to Team and choose your outreach team so new calls are routed to it.

From Templates > Workflows, add a workflow template named Customer Outreach and set Applies To to Process. Then open its Workflow Steps panel and add the steps below from the New menu.

Add three Add a Task steps, each using the Outbound Call template, named Outbound Call, Second Call, and Third Call. The Workflow Step name becomes the task’s name, so reps and managers can tell the attempts apart. Renaming doesn’t change how the task behaves. Set Duration to 1 Day on each so each call is due the day it’s created.

Add an Add an If/Then Statement step after each call. In the condition builder:

  1. For the left side, use the field chooser to pick the Outcome answer of the call this step checks. If you type the field instead, enter an XPath that starts with /. Text that doesn’t start with /, count(, data:, or format: is compared as a literal value, not looked up as a field.
  2. Choose = and enter Resolved.
  3. Set the result to True.

The step evaluates the condition against the process’s data and stores True or False.

Add an Add a Polling Step for Wait a day. A polling step re-checks its condition on a schedule and completes only when the condition is true:

  • Condition: format:dateDiff(…) around the completion date of the previous call, compared with >= and 1. format:dateDiff(date) returns the number of whole days from that date to today. Pick the date with the field chooser.
  • Schedule: how often to re-check, for example Daily at 3am.

Add Wait a week the same way, comparing with 7.

Add an Add an Advanced Step named Unreachable:

  • Data Source: leave it on the process summary.
  • Action: Process / Save, with the parameters ID={ObjectID}&Status=Unreachable. {ObjectID} is filled in with the ID of the process the workflow is running on.

Drag each step onto the step it depends on, then click the dependency to set When for dependencies on an if/then step:

Step Depends on When
Resolved? (first) Outbound Call
Wait a day Resolved? (first) False
Second Call Wait a day
Resolved? (second) Second Call
Wait a week Resolved? (second) False
Third Call Wait a week
Resolved? (third) Third Call
Unreachable Resolved? (third) False

Steps on a branch that isn’t taken are never created, so when any call is resolved the workflow simply completes.

The Customer Outreach workflow’s steps, with each call, check, and wait listed alongside its dependency.

The screenshot shows the steps from an earlier build of this workflow, where each check was written to be true when the call was not resolved, so its waits depend on Resolved? is true. Either way works, as long as each dependency’s When matches the branch.

From Templates > Processes, create a process template named Customer Outreach, set Workflow to Template, and choose Customer Outreach. Each new outreach process now starts the workflow, and the first call lands on the team’s worklist.

Open a Customer Outreach process for a customer, and the rest runs itself. The first call appears on the team’s worklist. If the rep records Resolved, the workflow completes. If not, the second call appears a day later, the third a week after that, and if none of them resolves the matter, the process status changes to Unreachable, ready for a report or the next workflow.

  • Send a letter or text between attempts with a Send a Message step. See Messaging.
  • Put a hold on the workflow when a customer asks you to call back later. See Workflow.
  • Create outreach processes in bulk from a list in Create worklists from any source.