Cadence Object Relationships

This diagram shows the relationships of Cadence Builder and tracker objects and their fields. For high-level information on the objects, see Cadence Objects. This section discusses the fields important to describing the action cadence graph and the tracking of active targets. For the full reference documentation, see Cadence Object Reference. These objects are read-only. You can use SOQL to query the object fields to inspect action cadences and create reports.

We refer to many of the objects as Cadence objects, but their API names start with ActionCadence.

Cadence object relationship diagram

The following fields relate the builder objects to one another to construct the cadence graph and define the builder operations. All builder objects relate to each other through foreign keys except the ActionCadenceStep to ActionCadenceStep record relationship. ActionCadenceStep records within an action cadence relate to each other through the StepName and ParentStepName string fields.

To learn more about what happens when you modify a cadence while it’s active, see Cadence Builder.


  • Name: The name of the action cadence that you see in the UI.
  • Description: The description of the action cadence.
  • State: The state of the action cadence, which can be Active, Deleting, Draft, Error, or Inactive.
  • FolderId and FolderName: The folder ID and name that contains the action cadence.
  • ActivatedDate: The date the action cadence was activated. Until the action cadence is activated, it is in Draft state.
  • LastEditedDateTime: If an action cadence is edited after activation, this field is updated.


  • ActionCadenceId: The ID of the action cadence this step belongs to.
  • RootStepId: The ID of the Root step of this action cadence.
  • Type: The step type. These values are allowed.
    • Root: The first step of the action cadence. There is always one Root step. This appears as the Start step in Cadence Builder.
    • AutoSendAnEmail, SendAnEmail, and MakeACall: An action step to send an automated email, send an email manually, or make a call. You can use an email or call TemplateId with this step.
    • CreateTask: A custom step. It has only two fields, the StepTitle and optional StepComments. No special rules apply.
    • Wait: A wait step creates a delay between action steps. This step type requires a WaitTimeInSeconds value.
    • Branch: A branch step following with a call. ActionCadenceRule and ActionCadenceRuleCondition records define the rule and rule conditions. The BranchDefaultStepName is the next step if the result is false. The OutcomeNextStepName of the ActionCadenceRule record is the next step if the result is true.
    • ListenerBranch: A branch step following with emails. It tracks what happens to the sent email. This step requires the same related objects and fields as the Branch step to define the rule, rule condition, and next steps.
  • StepName: The unique identifier for the step. If you use Cadence Builder, it is a GUID generated by Salesforce. It doesn’t appear in the UI.
  • StepTitle: The step name that you see in Cadence Builder.
  • StepComments: The step description that you see in Cadence Builder.
  • ParentStepName: The StepName of the previous step in the action cadence. This field is required unless the step type is Root or the step state is Retired or Orphaned.
  • TemplateId: The ID of a call script or email template if you want to use one with a call or email step.
  • WaitTimeInSeconds: The duration in seconds for this wait step. Required if the step type is Wait, unless the action cadence state is Draft.
  • BranchDefaultStepName: Required if the step type is Branch or ListenerBranch. This step is the first step of the branch that’s taken when the rule condition evaluates as false.
  • ChainedCadenceId: Required if the step type is DaisyChain. When a target is on the last step of a path in the current action cadence, this is the ID of the action cadence the target goes to next.
  • IsThreaded: This field is valid for step type SendAnEmail. If true, the email for this email step is sent as a reply to the email conversation from the previous email step. By sending the email as a reply to a previous email, targets and users see a conversation view of the emails. This field can’t be true for the first email step in a cadence, because the first email from a cadence must start a new conversation with the target.
  • HasVariant: This field is valid for step types AutoSendAnEmail, SendAnEmail, and MakeACall. If true, the step has email or call template variants. The template variants are defined in ActionCadenceStepVariant records.
  • GraphState: The step state in the graph. These values are allowed.
    • Included: The step is inside the graph. If you add a new step, the state is automatically set to Included.
    • Pending: This step has been created but hasn’t been added to the step graph. Pending steps can be added to the step graph at a later time.
    • Orphaned: A step that is deleted while the ActionCadence record is in Draft state. When you delete a step in Cadence Builder before it is activated, the system removes it from Cadence Builder, sets the GraphState to Orphan, and nulls the ParentStepName value. The step still appears in the database until it is deleted asynchronously upon action cadence activation. After a step is Orphaned, you can’t add it back to the action cadence. We recommend avoiding building dependencies on orphaned steps.
    • Retired: A step that is deleted from graph after the cadence is activated. This step is not deleted from the database. After a cadence is active targets can be on the step and historical data (in ActionCadenceStepTracker records) can be associated with this step. When a step is Retired, you can’t undo it. For more information on what happens to retired steps, see Cadence Builder.
  • GoToStepName: If targets exist on this step and the step is deleted, this field tells the action cadence where to send the targets next when they complete the deleted step. If this field is blank, the target exits the cadence when they complete the step. The rules for this field are:
    • It can’t point to the Root step.
    • If the destination is a Branch step, the retired step must be a MakeACall step.
    • If the destination is a ListenerBranch step, the retired step must be an AutoSendAnEmail or SendAnEmail step.
    • The destination and retired steps can’t both be Wait steps. The system doesn't allow two Wait steps in a row.
    • The destination and retired steps can’t both AutoSendAnEmail steps.


  • ActionCadenceStepId: The ID of the step with HasVariant set to true.
  • TemplateId: The call script or email template ID of the variant.
  • SplitPercentage: The percentage of targets that we expect to use this variant. The total percentage of variants must add up to 100%.
  • Type: Duplicate of the step type associated with this variant.


  • ActionCadenceStepId: The ID of the associated step with step type Branch or ListenerBranch.
  • ConditionLogic: The logical operator used to evaluate the rule conditions. The only value is AND. If this rule has several conditions, all must be true for this step to be true.
  • OutcomeNextStepName: The StepName of the step that the target we expect to go to if the result is true.
  • RuleName: The name given to the rule. Every rule in an action cadence must have a unique name. This name is not visible in the UI.
  • ParentRuleName: The value of the RuleName field of the previous rule in the cadence. Must contain a valid rule name value unless this rule is the root rule with RootStep type, in which case it is null.
  • RuleType: The type of step that this rule applies to. Possible values are:
    • BranchStep: The rule evaluates the condition of a Branch or ListenerBranch step type of an ActionCadenceStep record.
    • RootStep: The rule evaluates a global exit condition defined by GlobalEventType.
  • GlobalEventType: Required if the rule type is RootStep. If the action cadence rule contains a global exit condition, this field contains the type of event that the rule represents. A global exit condition can be, for example, exit on email hard bounce, exit on email soft bounce, or caller not interested. In these cases, the target exits the action cadence immediately. You can find the global exit condition types in our object references.
  • GraphState: The state of the rule. The options are the same as for ActionCadenceStep: Included, Orphaned, Pending, and Retired.


  • ActionCadenceRuleId: The ID of the ActionCadenceRule that this condition is associated with.
  • RuleConditionName: The name of the rule condition. Every rule condition in an action cadence must have a unique name. This name isn’t visible in the UI.
  • Resource: The field to evaluate. Possible values are:
    • CallDispositionCategory: Used by the Branch step type.
    • EmailEngagement: Used by the ListenerBranch step type.
  • Operator: The conditional operator for this rule. The only value is Equal.
  • Value: The event that your cadence rule condition listens for to decide when the event is complete. Examples are EmailOpen, EmailLinkClick, and CallNotInterested.

These objects and their fields track targets as they move through active action cadences. The tracker and step tracker records are the runtime version of a target. The tracker and step tracker records are kept in the database to keep a history of targets and the steps they’ve completed.


  • ActionCadenceId: The ID of the related action cadence.
  • TargetId: The ID of the lead, contact, or person account assigned to the action cadence target.
  • CurrentStepId: The ID of the current ActionCadenceStepTracker record for the step the target is on.
  • State: The state of the tracker.
  • CompletionReason: The reason that the target completed the action cadence.
  • LastCompletedStepId: The ID of the last completed ActionCadenceStepTracker record.
  • ExitGlobalRuleId: If the target exits because of a global exit condition, this field is the ID of the ActionCadenceRule record with the global exit rule. One example of a global exit condition is an email bounced because of an invalid email address.
  • Fields related to opportunities:
    • RelatedToId: The ID of the opportunity related to the target, if one exists.
    • RelatedToAttributionType: This field defines when the cadence gets credit for the opportunity. You can attribute the opportunity to the cadence when the opportunity is created or only when the opportunity stage advances.
    • CompletionDisposition: The opportunity state on completion of the cadence. Sales reps can also set this value when removing a target from an action cadence.
  • ScheduledResumeDateTime: The time when the action cadence is going to resume when it is paused or on a wait step.
  • IsTrackerActive: Indicates whether the action cadence target is active or not. If the state is Running, Paused, Processing, or Initializing, an action cadence target is active. Only active targets count against the limit of 150,000 trackers.
  • DaisyChainIteration: The number of this action cadence in a sequence of linked action cadences followed by this target. This value starts at 1 with the initial action cadence. A target can follow a sequence of up to 10 linked action cadences.


  • ActionCadenceTrackerId: The ID of the related tracker record.
  • ActionCadenceStepId: ActionCadenceStepTracker is the runtime version of an ActionCadenceStep. This field contains the ID of the related ActionCadenceStep.
  • TargetId: The ID of the lead, contact, or person account assigned to the cadence.
  • State: The current state of this step.
  • CompletionReason and CompletionDate: The reason and the date that the target completed the cadence. A step is completed when the action is taken or the step is skipped by a sales rep.
  • StepType and StepTitle: The Type and StepTitle of the related ActionCadenceStep.
  • ActionCadenceId and ActionCadenceName: The associated ID and name of the related action cadence.
  • ActionTakenDateTime: The date and time that the action described in this step was taken. If the action is scheduled, for example, send an email in 2 hours, this is the date and time the task is scheduled and not when the task is carried out. This field is useful for users and managers to see what steps are overdue.
  • DueDateTime and SecondsOverdue: When a scheduled task is due and by how much it’s overdue.
  • IsActionTaken: Indicates whether somebody has taken action on this step tracker, true if the sales rep completed an action during this step, such as making a phone call. Otherwise, the value is false.
  • CompletedById: The user ID of the sales rep who completed this step for the target. A target can be assigned to a different user, such as yourself, another Sales Engagement user, or another target owner, before a step is completed.
  • WasEverPaused: If you pause a tracker, the step tracker is paused. Users can use the pause functionality to prevent overdue steps. Managers can query this field to see whether any users have excessive numbers of paused step trackers.