• OutcomePowers




Static get

  • Retrieve outcomes based on lookup. Can only retrieve outcomes for current skill version + org.

    const outcomes = await OutcomePowers.get({name: "my-outcome", key: "key-01"});


    Returns Promise<PotentialSkillOutcome[] | null>

    Array of potential outcomes that match filter criteria or null if none exist

Static remove

  • Remove outcomes based on lookup. Can only remove outcomes for current skill version + org.


    • outcomeLookup: OutcomeLookup

      Filters for targeting outcomes to delete

    Returns Promise<boolean>

    true, if at least one outcome was removed

Static track

  • Track a specific outcome. This outcome is unique for skill version + organization + name + key + recommendation key. If an outcome exists already, this will only update the description, attributionDisplayTemplate, valueCriteriaMet, behaviorCriteriaMet, properties, and attributionValue.


    Below demonstrates the definition of a skill outcome that tracks how many users have clicked a specific acknowledgement message from Andi. To track an outcome, you need to define, call OutcomesPowers.track, and then add the outcome to the tag that it relates to. This will wire things up to automatically update your outcome when a user clicks on it.

    With the below code, as each unique user clicks on the tag. The Andi Skills Manager and related reporting will update the total count of users that have acknowledged the new process.

    const reportExampleName = "New Process Acknowledgement";
    const reportExampleDescription = "Users that have acknowledged the new business workflow process.";
    const newProcessAcknowledged: PotentialSkillOutcome = {
     name: reportExampleName,
     description: reportExampleDescription,
     key: currentUserId,
     behaviorType: Behavior.Clicked,
     // no specific value criteria, so as soon as this is clicked it will count as a met outcome
     valueCriteriaMet: true,
     attributionDisplayTemplate: "{{value}} users",
     attributionValue: 1
    const processAcknowledgeTag: SummaryTag = {
     text: "Click to acknowledge new process!",
     tagType: FieldTagTypes.Warning,
     key: "tag_acknowledge",
     outcomes: [newProcessAcknowledged]
    await OutcomePowers.track(newProcessAcknowledged);
    return EngagementPowers.sendEngagements([processAcknowledgeTag]);


    Returns Promise<void>

Generated using TypeDoc