Newer Version Available

This content describes an older version of this product. View Latest

MacroInstruction

Represents an instruction in a macro. An instruction can specify the object that the macro interacts with, the context or publisher that the macro works within, the operation or action that the macro performs, and the target of the macro’s actions.

Supported Calls

create(), delete(), describeSObjects(), getDeleted(), getUpdated(), query(), retrieve(), undelete(), update(), upsert()

Fields

Field Name Details
MacroId
Type
reference
Properties
Create, Filter, Group, Sort
Description
ID of the macro that contains this instruction.
Name
Type
string
Properties
Autonumber, Defaulted on create, Filter, Sort
Description
Name of the instruction.
Operation
Type
picklist
Properties
Create, Filter, Group, Restricted picklist, Sort, Update
Description
The action that the macro instruction performs. Valid values are:
  • Select
  • Set
  • Insert
  • Submit
  • Close
To create macro instructions that execute conditionally, these values are available in API version 46.0 and later.
  • IF
  • ELSEIF
  • ELSE
  • ENDIF
SortOrder
Type
int
Properties
Create, Filter, Group, Sort, Update
Description
Order of this instruction in the macro.
Target
Type
picklist
Properties
Create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
The object that’s the target of the operation. For example, the target for the active case tab (Tab.Case) or a quick action, like the Send Email action on the case object (QuickAction.Case.SendEmail).
In Lightning Experience, macros are supported on standard and custom objects that allow quick actions and have a customizable page layout.
In Salesforce Classic, macros are supported on objects with feed-based layouts and quick actions.
You can specify relative dates and times for the following targets.
  • DateTime
  • Date
  • Time
  • DueDate
  • Birthday
Value
Type
string
Properties
Create, Filter, Nillable, Sort, Update
Description
Value of a field. If the operation is Select, then the value is null, because the operation selects the object on which the macro performs an action. An instruction can contain both a Value field and a ValueRecord field, but only one of these fields can have a value. The other field value must be null.
To create relative dates and times, specify a valid Salesforce formula, prefaced by MacroFormula. For example, the following formula creates a date that is 1 day from now:
MacroFormula:NOW() + 1
You can’t edit custom relative formulas in the Macro Builder.
ValueRecord
Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
ID of the value or record. The ValueRecord can be either a value or a record, but not both. An instruction can contain both a Value field and a ValueRecord field, but only one of these fields can have a value. The other field value must be null.

Usage

MacroInstructions can specify objects, operations, conditions, and targets. For example, a macro containing these instructions performs a quick action that sends an email.

1Select Email QuickAction
2      Set Subject…
3      Set To…
4      Set Body…
5      Submit

You can create conditional macros using IF, ELSEIF, ELSE, and ENDIF as operations. In a conditional statement, the ExpressionFilter and ExpressionFilterCriteria objects are used to control which instructions execute. The ExpressionFilter object lets you define a logical expression with one or more conditions. It uses a child object, ExpressionFilterCriteria, to represent each condition that is evaluated.

For example, consider the following conditional statement and macro instructions.

1IF (Case.Status EQUALS New) AND (Case.Origin EQUALS Phone)
2      Select Email QuickAction
3      Set Subject…
4      Set To…
5      Set Body…
6      Submit
7ELSE
8      Select Update Case Detail
9      Update Case Description…
10      Submit
11ENDIF

The ExpressionFilter object includes a FilterConditionLogic field containing 1 AND 2, where 1 and 2 are ExpressionFilterCriteria objects. The SortOrder field in the ExpressionFilterCriteria object maps condition 1 to Case.Status EQUALS New, and condition 2 to Case.Origin EQUALS Phone. If the conditional statement evaluates to true, then the instructions in the IF block are executed; otherwise, the instructions in the ELSE block are executed.

Any number of macro instructions can be present inside an IF, ELSEIF, or ELSE block. In addition, conditions can be nested.

Data Model

The MacroInstruction data model.