Entitlement Exports

There are three sets of entitlements-related data that can be exported: entitlements, userEntitlements, and products.

Requesting Access

To request access to entitlements exports for your integration, please contact customer support with the following information:

  • Client ID
  • Desired export types (entitlements, userEntitlements, products, or all)
  • Preferred destination (SFTP, S3, etc.)
  • Desired export frequency

Export Destinations

Exports can be delivered to the following destinations:

Amazon S3

  • Direct delivery to your S3 bucket
  • Requires: bucket name, region, and appropriate IAM permissions
  • Primary destination for all exports
  • See S3 Destination

Other Destinations

Additional destinations may be available in future releases. Contact customer support to discuss your specific requirements or request new destination types.

Export Types

Full vs Differential Exports

Full Exports: Each export contains the complete dataset of all records, regardless of when they were last modified.

Differential Exports: Currently, exports are full extracts only. Differential/incremental exports may be available in future releases.

Export Scheduling

Exports can be configured to run at the following intervals:

  • Hourly: Every hour at a specified minute
  • Daily: Once per day at a specified time (UTC)
  • Weekly: Once per week on a specified day and time (UTC)
  • Custom: Contact customer support for custom scheduling requirements. We use Cron for scheduling: https://crontab.guru/

Data Formats

All entitlement exports are delivered as JSON files.


Export Samples

Entitlements Export

The entitlements export contains all entitlement definitions configured for your client.

Sample Export:

[
  {
    "_id": "616941806bc11034a221d593",
    "clientId": "DEMOCLIENT",
    "name": "jnrgold",
    "description": "Junior Eagles Silver",
    "status": "ACTIVE",
    "created": {
      "date": "2021-05-06T13:58:29.223Z"
    },
    "lastModified": {
      "date": "2021-05-06T13:58:29.223Z"
    },
    "deleted": false
  },
  {
    "_id": "616940b96bc11034a2212530",
    "clientId": "DEMOCLIENT",
    "name": "International Membership",
    "description": "",
    "status": "ACTIVE",
    "created": {
      "date": "2021-05-06T12:03:57.835Z"
    },
    "lastModified": {
      "date": "2021-10-18T11:19:10.077Z"
    },
    "deleted": false
  },
  {
    "_id": "616941766bc11034a221c9cb",
    "clientId": "DEMOCLIENT",
    "name": "jnrgold",
    "description": "Junior Eagles Gold",
    "status": "ACTIVE",
    "created": {
      "date": "2021-05-06T13:58:29.223Z"
    },
    "lastModified": {
      "date": "2021-05-06T13:58:29.223Z"
    },
    "deleted": false
  },
  {
    "_id": "616941906bc11034a221e520",
    "clientId": "DEMOCLIENT",
    "name": "jnrint",
    "description": "Junior Eagles International",
    "status": "ACTIVE",
    "created": {
      "date": "2021-05-06T13:58:29.223Z"
    },
    "lastModified": {
      "date": "2021-05-06T13:58:29.223Z"
    },
    "deleted": false
  },
  {
    "_id": "6171327df4a4402a25898848",
    "clientId": "DEMOCLIENT",
    "name": "Test Membership",
    "description": "Just a test",
    "status": "ACTIVE",
    "deleted": false,
    "created": {
      "date": null
    },
    "lastModified": {
      "date": null
    }
  },
  {
    "_id": "616940cd6bc11034a221359c",
    "clientId": "DEMOCLIENT",
    "name": "Gold Membership",
    "description": "",
    "status": "ACTIVE",
    "created": {
      "date": "2021-05-06T13:58:17.166Z"
    },
    "lastModified": {
      "date": "2021-10-18T10:54:55.439Z"
    },
    "deleted": false
  }
]

Field Descriptions:

FieldTypeDescription
_idstringUnique identifier for the entitlement
clientIdstringClient identifier
namestringEntitlement name
descriptionstringDescription of the entitlement
statusstringCurrent status
created.datestring (ISO 8601)Timestamp when the entitlement was created
lastModified.datestring (ISO 8601)Timestamp of the last modification
deletedbooleanSoft delete flag

User Entitlements Export

The userEntitlements export contains all user-to-entitlement assignments, including active status and validity periods.

Sample Export:

[
  {
    "_id": "690c89366c32bc862a4428c6",
    "clientId": "DEMOCLIENT",
    "entitlementId": "690c894570213d5ce6d764a8",
    "metadata": {
      "productId": "690c8967894af23d56c49f77",
      "sourceSystem": "DEMOCLIENT_SG",
      "sourceSystemId": "2d353251-9384-ea11-827b-06f486107252",
      "sourceSystemUserId": null
    },
    "userId": "123",
    "active": true,
    "endDate": "2021-12-31T23:59:59.000Z",
    "entitlementName": "International Membership",
    "startDate": "2021-01-01T00:00:00.000Z"
  },
  {
    "_id": "690c893ddbfc222f60aab5fa",
    "clientId": "DEMOCLIENT",
    "userId": "321",
    "entitlementId": "690c8949bd12ecb77dfa0857",
    "entitlementName": "International Membership",
    "startDate": "2021-10-19T07:00:00.000Z",
    "endDate": "2021-10-30T07:00:00.000Z",
    "active": true,
    "metadata": null
  },
  {
    "_id": "690c89409354ca2ab6edf509",
    "clientId": "DEMOCLIENT",
    "userId": "231",
    "entitlementId": "690c894db4608e7cc0063081",
    "entitlementName": "International Membership",
    "startDate": "2021-01-21T00:00:00.000Z",
    "endDate": "2022-10-30T23:59:00.000Z",
    "active": true,
    "metadata": null
  }
]

Field Descriptions:

FieldTypeDescription
_idstringUnique identifier for the user entitlement assignment
clientIdstringClient identifier
userIdstringUser identifier in your system
entitlementIdstringReference to the entitlement definition ID
entitlementNamestringName of the assigned entitlement
startDatestring (ISO 8601)When the entitlement becomes active
endDatestring (ISO 8601)When the entitlement expires
activebooleanWhether the entitlement is currently active
metadataobjectOptional additional metadata about the assignment
metadata.productIdstringAssociated product ID, if applicable
metadata.sourceSystemstringOrigin system of the entitlement
metadata.sourceSystemIdstringID in the source system
metadata.sourceSystemUserIdstringUser ID in the source system

Products Export

The products export contains all product definitions that can be associated with entitlements.

Sample Export:

[
  {
    "_id": "617132e3f4a4402a2589c61c",
    "clientId": "DEMOCLIENT",
    "name": "Test Product",
    "description": "Test Product",
    "created": {
      "date": "2021-05-12T12:03:57.835Z"
    },
    "lastModified": {
      "date": "2021-05-12T12:03:57.835Z"
    },
    "deleted": false
  }
]

Field Descriptions:

FieldTypeDescription
_idstringUnique identifier for the product
clientIdstringClient identifier
namestringProduct name
descriptionstringProduct description
created.datestring (ISO 8601)Timestamp when the product was created
lastModified.datestring (ISO 8601)Timestamp of the last modification
deletedbooleanSoft delete flag

Best Practices

  1. Data Processing: Always validate the JSON structure before processing exports
  2. Error Handling: Implement retry logic for failed export retrievals
  3. Monitoring: Set up alerts for missing or delayed exports
  4. Date Handling: All timestamps are in UTC; convert to your local timezone as needed
  5. Incremental Processing: You can use the lastModified.date field to identify recently changed records, even in full exports
  6. Deleted Records: Check the deleted flag to handle soft-deleted records appropriately

Troubleshooting

Export Not Received

  • Verify your destination credentials are current
  • Check that your destination has sufficient storage space
  • Review any firewall or security rules that might block the delivery

Data Discrepancies

  • Ensure you're processing the most recent export file
  • Verify timezone handling for date fields
  • Contact customer support if data appears incorrect