Activity & Fulfilment Types

Pathways is a learning technology that connects multiple activities into a journey centric learning experience. In order for a user to complete an activity a type of fulfillment needs to occur. Before starting to develop integration with pathway logs, it is a good idea to familiarize with the activity types and corresponding fulfillments.

Activity Types & Corresponding Fulfilments

Some activities have only one type of fulfilment while others could different ones depending on the activity requirement.

Activity Type

Fulfilment Type(s)

Article

View

Assessment

View, Complete

Audio

View

Certificate

View

Classroom

Check-In, QR Code

Confirmation

Honor, Upload, Upload & Review

Connect Pathway

Enrollment

Data Checkpoint

Data

Data Tracking

Data

Event

Check-In, QR Code

Milestone

View

Physical Activity

Honor, Upload, Upload & Review, QR Code

Podcast Episode

View

Reward

View

Story

View, Complete

Stream Snippet

View

Survey

View, Complete

Video

View

Web Activity

Visit, Tracking

YouTube Video

View

Pathway Logs & Fulfilments

When making calls to the pathway logs, the response returns logs with a fulfilment object. Depending on the fulfilment different properties will be available. This is useful to know ahead of integration so you can plan fulfilment handling accordingly. The below code snippets and definitions provide this information for each fulfillment type.

Empty Fulfilment

If the user has and not started or no fulfilment logs have been recorded the fulfilment object will be an empty array i.e. Empty

"fulfilment": []

Check-In Fulfilment

The check-in fulfilment is used in classroom, events and physical location activities. The user uses their device to check-in. If the activity is related to a classroom or event, then eventID and booking guid will be in the fulfilment property.

"fulfilment": {
    "type": "check-in",
    "progress": 100,
    "checkin": {
        "eventID": "EVBK-CAGJ-71XT",
        "virtual" : false,
        "guid": "212caaa7-eb7b-4ca4-9db0-1ac88a2b6bf8",
        "distance": 12653
    },
    "timestamp": "2022-02-28T14:07:09+02:00"
}

Key

Type

type

String

progress

Float

timestamp

String

checkin

Object

checkin.distance

Float (The distance in meters)

Only for classroom & events

checkin.guid

String (The GUID of the booking)

checkin.virtual

Bool (If the event is virtual)

checkin.eventID

String (The ID / SKU of the event)

checkin.distance If the distance is -1, the distance between the location and the user was not determined or shared. If checkin.virtual is true then the distance will always be -1 as no distance is tracked for virtual events. Precise coordinates are not saved on the server only distance is calculated with ephemeral coordinates.

checkin.guid & checkin.eventID Only if the activity is a classroom or event. The guid refers to the unique ID of the booking and the eventID refers to the event / classroom's eventID or given SKU format. See more in Classroom & Events.

Complete Fulfilment

The complete fulfilment relates to digital learning these are in the following formats: Story, Assessment & Survey.

"fulfilment": {
    "type": "story",
    "state": "completed",
    "progress": 100,
    "story": {
        "ID": "EV72-RQZY-80AH",
        "name": "Dragon Template",
        "score": 100,
    },
    "timestamp": "2022-02-24T14:56:56+02:00"
}

Key

Type

type

Enum (story or chapter)

state

Enum (not started, in progress, completed)

progress

Float (The progress of the user in the activity)

story

Object

story.ID

String (ID of the story)

story.name

Sting (Name of the story)

story.score

Float (The score of the user in the activity)

timestamp

String

story

The story object gives the ID & name of the story which can be used to look up additional logs and analytics.

story.score If the activity has a non-scoring activity the score in the fulfilment will always be 100%

Data Fulfilment

The data fulfilment is only applicable to data activities. These activities are fulfilled by data uploaded to the platform via spreadsheets or API integrations.

"fulfilment": {
    "type": "data",
    "state": "completed",
    "progress": 100,
    "data": {
        "category": "Current Score",
        "current": 201,
        "target": 1
    },
    "timestamp": "2021-07-01T16:27:04+02:00"
}

Key

Type

type

String (Always data)

state

Enum (not started, in progress, completed)

progress

Float (progress of current to target in data)

data

Object

data.category

String (The context / name of the data)

data.current

Float (The current data value of the user)

data.target

Float (The required target for current)

timestamp

String

data The data object is generated by what data is uploaded or pushed to Data Manager. When this event occurs the user's log is updated in the background and requires no user interaction.

The target and current value is setup on the pathway activity and correspond to "columns" in the data. Learn more about Data.

Enroll Fulfilment

The enroll fulfilment is only applicable to activities that link to other pathways. The user fulfils the activity when they select the activity and enroll on the other pathway.

"fulfilment": {
    "type": "enroll",
    "state": "completed",
    "progress": 100,
    "pathway": {
        "ID": "EVPW-IUOI-80GX",
        "name": "Notify"
    },
    "timestamp": "2022-02-28T14:59:05+02:00"
}

Key

Type

type

String (Always enroll)

state

String (Always completed)

progress

Float (Always 100)

pathway

Object

pathway.ID

String (ID of pathway)

pathway.name

String (name of pathway)

timestamp

String

pathway

The pathway object gives the ID & name of the pathway which can be used to look up additional logs and analytics.

Honor Fulfilment

The honor fulfilment is where the user simply needs to view the activity and confirm they have completed it by selecting a "I Confirm" button. Honor in this context refers that the activity fulfilment is a honor based exercise.

"fulfilment": {
    "type": "honor",
    "state": "completed",
    "progress": 100,
    "timestamp": "2022-02-24T15:11:04+02:00"
}

Key

Type

type

String (Always honor)

state

String (Always completed)

progress

Float (Always 100)

timestamp

String

Tracking Fulfilment

The tracking fulfilment is specific to web activities. These activities are usually occur off app on external platforms or serverless web apps. Web activities that are set to track will need to update pathway fulfilments using the Web Tracking API.

"fulfilment": {
    "type": "track",
    "state": "completed",
    "progress": 100,
    "tracking": {
        "message": "You pushed the button 10 times 🎉🎉🎉",
        "data": "{\"buttonPushes\":10}"
    },
    "timestamp": "2022-02-28T17:42:21+02:00"
}

Key

Type

type

String (Always track)

state

Enum (not started, in progress, completed)

progress

Float

tracking

Object

tracking.message

String (Message set by Web Tracking API)

tracking.data

String (JSON string set by the Web Activity API)

timestamp

String

tracking.message & tracking.data With the Web Tracking API the push method allows a short message and a JSON string to be stored with the pathway log to keep track of progress and state. See more in the Web Tracking API docs.

Upload Fulfillment

The upload fulfilment is for confirmation and physical activities and requires the user to upload a file or several files.

"fulfilment": {
    "type": "upload",
    "state": "completed",
    "progress": 100,
    "uploads": [
        {
            "url": "<url of upload>",
            "type": "image",
            "name": "image-1.png"
        },
        {
            "url": "<url of upload>",
            "type": "image",
            "name": "image-2.png"
        },
        ..etc
    ],
    "timestamp": "2022-02-24T14:57:46+02:00"
}

Key

Type

type

upload

state

Enum (not started, in progress, review, completed)

progress

Float

uploads

Array

uploads.url

String

uploads.type

String (video, image, audio or file)

uploads.name

String (Original file name)

timestamp

String

Review state Some upload fulfilments will have a state of review, this means that the user has uploaded the files but the submission is waiting for a review from a pathway admin. If you plan to retrieve these files you should do so once the state is complete.

View Fulfilment

"fulfilment": {
    "type": "view",
    "state": "completed",
    "progress": 100,
    "timestamp": "2021-07-01T19:26:05+02:00"
}

Key

Type

type

String (Always view)

state

String (Always completed)

progress

Float (Always 100)

timestamp

String

Last updated