Activity type results
An activity result is returned each time a contact is evaluated within an activity enrollment. There are five possible activity results which can be used multiple times within the same activity type.
SuccessStay()
Indicates that the activity was successfully executed and that the contact should remain enrolled in the current activity.
SuccessMove()
Moves the contact along the specified path, assuming the path key is legal. Legal path keys are determined in the definition plan and possible paths should be registered with the activity type descriptor locator for the activity type in question.
The following example has two possible paths - “true” or “false”.
// Uses default path
return new SuccessMove();
public class CustomActivity : IActivity
{
public bool CustomFlagIsTrue { get; set; }
IActivityServices Services { get; set; }
public ActivityResult Invoke(IContactProcessingContext context)
{
if (CustomFlagIsTrue)
{
return new SuccessMove("true");
}
return new SuccessMove("false");
}
}
If you return SuccessMove()
without specifying a path key, the default path key (always default
) is used.
SuccessExitPlan()
Indicates that a contact should be removed from the plan.
return new SuccessExitPlan();
Failure()
Indicates that a catastrophic error has occurred, usually related to faulty data. The activity will be rescheduled and re-tried.
return new Failure();
Do not return Failure()
if a contact does not yet meet the requirements to move forward - use SuccessStay()
to indicate that the activity logic succeeded, but that the contact should remain in the current activity.
SuccessRestartPlan
Indicates that a contact should be returned to the start of the plan. The entry activity will be skipped as the contact should not be re-evaluated for plan entry criteria. Hence, the contact will be moved to the single activity after the entry activity. If there are multiple paths out of the entry activity, the engine will throw an error.
return new SuccessRestartPlan();