This article provides a technical breakdown of how assignment data is synchronised from SAP SuccessFactors to Thrive.
SAP | Thrive | |||||
|---|---|---|---|---|---|---|
Source Field | Source Type | Target Field | Target Type | Transformation Rule | Nullable | Notes |
USER_ID | String | ref | String | Direct copy (used to resolve Thrive user by ref) | N | Used to identify the learner in Thrive by matching user.ref to the SAP USER_ID. This is the key used to link assignments to a user. |
ASSIGNMENT_UPDATED_AT | String (date-time) | Ignored / Not mapped (not used) | Y | Not stored or used by the integration. Included in the CSV for debugging/troubleshooting purposes only. | ||
ASSIGNMENT_TYPE | String | Ignored / Not mapped (not used) | N | Not stored or used by the integration. Included in the CSV for reference only. | ||
ASSIGNMENT_DUE_AT | String (date-time) | dueDate | String (date-time) | Direct copy (date-time) | Y | Stored as-is as the Thrive assignment due date. Can be empty (e.g., self-assigned items in SAP). |
ASSIGNMENT_STARTED | Boolean | Ignored / Not mapped (not used) | Y | Not currently stored or used by the integration. | ||
ASSIGNMENT_COMPLETED_AT | String (date-time) | completedDate | Direct copy (date-time) | Y | Stored as-is as the Thrive assignment completed date when present. Assignment “Completed” status is derived internally (driven by SAP completion events), not by persisting SAP status fields. (This date is also captured on the completion/xAPI side.) | |
ASSIGNMENT_UNASSIGNED | Boolean | Not stored – used for processing logic only (archive assignment) | Y | Not persisted as a field. Used during processing as a marker to determine whether an assignment should be archived for the learner. | ||
ASSIGNMENT_COMPLETION_STATUS | String | Not stored – Thrive derives status internally | Y | SAP completion status values are not persisted. Thrive uses its own lifecycle/status model; assignments are set to “Completed” based on SAP completion data rather than mapping SAP status values. | ||
CONTENT_ID | String | externalReference | String | Derived (composite key: contentId + contentTypeId + revisionAt) | N | Not stored as a standalone field. Used together with CONTENT_TYPE_ID and CONTENT_REVISION_AT to construct externalReference in the format {contentId}_{contentTypeId}_{revisionEpochMs}. This value is persisted and also included in the Thrive description for traceability. |
CONTENT_TYPE_ID | String | Used in derivation of externalReference | N | Not stored as a standalone field. Used only as part of the composite externalReference key together with CONTENT_ID and CONTENT_REVISION_AT. Thrive does not persist SAP content type separately as all SAP content is stored as URL content. | ||
CONTENT_TITLE | String | title | String | Direct copy | N | SAP content title is stored as the Thrive content title. |
CONTENT_DESCRIPTION | String | description | String | Derived (contentId + description + target audience) | Y | Thrive description is derived by concatenating CONENT_ID, then SAP CONTENT_DESCRIPTION, then SAP CONTENT_TARGET_AUDIENCE (in that order). Either SAP field may be missing; the description may contain only the external reference if no other values are provided. |
CONTENT_REVISION_AT | String (date-time) | externalReference | String | Used in derivation of externalReference (converted to epoch ms) | N | Not stored as a standalone field. Converted to epoch milliseconds and used as part of the composite externalReference together with CONTENT_ID and CONTENT_TYPE_ID. The resulting externalReference is also included in the Thrive description for traceability. |
CONTENT_IS_ACTIVE | Boolean | Not stored – Thrive derives internally | We don’t store this value. It is used to decide whether we should create the content item. | |||
CONTENT_THUMBNAIL_URL | String | thumbnail | String | Direct copy | Y | Stored as the Thrive thumbnail URL if provided by SAP. |
CONTENT_DOMAIN_ID | String | tags | Array(String) | Direct copy (mapped to tags array) | Y | SAP domain ID is stored as a tag in Thrive |
CONTENT_TARGET_AUDIENCE | String | description | String | Derived (append to description) | Y | Appended to the Thrive description after SAP CONTENT_DESCRIPTION. This value is not stored in a separate field as Thrive has no dedicated “target audience” attribute. |