Content

Prev Next

Content Subscription Events

Subscription key: content_subscription

All events on this page are delivered to the URL configured under content_subscription. This subscription covers event namespaces: content lifecycle, pages, posts, comments, and moderation. Notification events are delivered via a separate notification_subscription.


content.* - Content Lifecycle Events

Fired when a content item changes state in the content library.

Event types: content.created · content.updated · content.published · content.deleted · content.archived · content.restored

Field Type Nullable Description
eventType string No One of the 6 content event types listed above
tenantId string No Your Thrive tenant identifier
content object No The content item
content.id string No Content item ID
content.title string Yes Content title. May be null if the lookup failed at dispatch time
content.type string Yes Content type (e.g. course, pathway). May be null if the lookup failed
content.urls string[] No Full URLs to the content item on each of your configured tenant domains
user object Yes User who triggered the event. Omitted if no user was associated with the event
user.id string Yes User ID
user.reference string Yes External reference (e.g. HR system ID)
user.email string Yes User email address
user.firstName string Yes User’s first name
user.lastName string Yes User’s last name
createdAt string No ISO 8601 timestamp of when the event occurred on the platform
dispatchedAt string No ISO 8601 timestamp of when this webhook was dispatched

Example payload (content.published):

{
  "eventType": "content.published",
  "tenantId": "acme-corp",
  "content": {
    "id": "64a1b2c3d4e5f6789abcdef0",
    "title": "Health & Safety Induction",
    "type": "course",
    "urls": ["https://acme.learn.link/content/64a1b2c3d4e5f6789abcdef0"]
  },
  "user": {
    "id": "usr_abc123",
    "reference": "EMP-00042",
    "email": "jane.smith@acme.com",
    "firstName": "Jane",
    "lastName": "Smith"
  },
  "createdAt": "2024-03-15T10:30:00.000Z",
  "dispatchedAt": "2024-03-15T10:30:01.234Z"
}

page.* — Page Events

Fired when a community or content page changes state.

Event types: page.published · page.deleted · page.archived

Field Type Nullable Description
eventType string No One of the 3 page event types
tenantId string No Your Thrive tenant identifier
page object No The page
page.id string No Page ID
page.title string Yes Page title
page.type string Yes Page type
page.urls string[] No Full URLs to the page on each of your configured tenant domains
createdAt string No ISO 8601 timestamp of when the event occurred on the platform
dispatchedAt string No ISO 8601 timestamp of when this webhook was dispatched

Example payload:

{
  "eventType": "page.published",
  "tenantId": "acme-corp",
  "page": {
    "id": "pg_abc123",
    "title": "Company Announcements",
    "type": "community",
    "urls": ["https://acme.learn.link/pages/pg_abc123"]
  },
  "createdAt": "2024-03-15T10:30:00.000Z",
  "dispatchedAt": "2024-03-15T10:30:01.234Z"
}

post.* — Post Events

Fired when a post within a community page is created, changed, or interacted with.

Event types: post.posted · post.updated · post.deleted · post.liked · post.unliked · post.pinned · post.unpinned · post.users-mentioned

Field Type Nullable Description
eventType string No One of the 8 post event types
tenantId string No Your Thrive tenant identifier
post object No The post
post.id string No Post ID
post.title string Yes Post title
page object No The parent page
page.id string No ID of the page the post belongs to
page.title string Yes Title of the parent page
page.contentType string Yes Content type of the parent page
page.urls string[] No Full URLs to the parent page on each of your configured tenant domains
user object Yes The user who triggered the event. May be absent if user data unavailable
user.id string Yes User ID
user.reference string Yes External reference (e.g. HR system ID)
user.email string Yes User email address
user.firstName string Yes User’s first name
user.lastName string Yes User’s last name
users object[] Yes Additional users relevant to the event (e.g. users mentioned). May be empty
users[].id string Yes User ID
users[].reference string Yes External reference (e.g. HR system ID)
users[].email string Yes User email address
users[].firstName string Yes User’s first name
users[].lastName string Yes User’s last name
createdAt string No ISO 8601 timestamp of when the event occurred on the platform
dispatchedAt string No ISO 8601 timestamp of when this webhook was dispatched

Example payload (post.users-mentioned):

{
  "eventType": "post.users-mentioned",
  "tenantId": "acme-corp",
  "post": {
    "id": "post_xyz789",
    "title": "Welcome to the team!"
  },
  "page": {
    "id": "pg_abc123",
    "title": "Company Announcements",
    "contentType": "community",
    "urls": ["https://acme.learn.link/pages/pg_abc123"]
  },
  "user": {
    "id": "usr_abc123",
    "reference": "EMP-00042",
    "email": "jane.smith@acme.com",
    "firstName": "Jane",
    "lastName": "Smith"
  },
  "users": [
    {
      "id": "usr_def456",
      "reference": "EMP-00043",
      "email": "john.doe@acme.com",
      "firstName": "John",
	    "lastName": "Does"
    },
    {
      "id": "usr_ghi789",
      "reference": "EMP-00044",
      "email": "alice.jones@acme.com",
      "firstName": "Alice",
	    "lastName": "Jones"
    }
  ],
  "createdAt": "2024-03-15T10:30:00.000Z",
  "dispatchedAt": "2024-03-15T10:30:01.234Z"
}

comment.* — Comment Events

Fired when a user replies to a comment, mentions someone in a comment, or likes a comment on a post.

Event types: comment.replied · comment.mentioned · comment.liked

Field Type Nullable Description
eventType string No One of the 3 comment event types
tenantId string No Your Thrive tenant identifier
post object No The post
post.id string No ID of the post the comment belongs to
page object No The parent page
page.id string No ID of the page
page.title string Yes Title of the parent page
page.urls string[] No Full URLs to the parent page on each of your configured tenant domains
comment object Yes The comment. May be absent if the source event did not include it
comment.author.id string No Author's user ID
comment.author.reference string Yes External reference (e.g. HR system ID)
comment.author.email string Yes Author email address
comment.author.firstName string Yes Author's first name
comment.author.lastName string Yes Author's last name
comment.text string No Comment body text
user object Yes The user who triggered the event. May be absent if user data unavailable
user.id string Yes User ID
user.reference string Yes External reference (e.g. HR system ID)
user.email string Yes User email address
user.firstName string Yes User’s first name
user.lastName string Yes User’s last name
users object[] Yes Additional users relevant to the event (e.g. users mentioned). May be empty
users[].id string Yes User ID
users[].reference string Yes External reference (e.g. HR system ID)
users[].email string Yes User email address
users[].firstName string Yes User’s first name
users[].lastName string Yes User’s last name
repliedToUser object Yes The user being replied to. Present on comment.replied events
repliedToUser.id string Yes User ID
repliedToUser.reference string Yes External reference (e.g. HR system ID)
repliedToUser.email string Yes User email address
repliedToUser.firstName string Yes User’s first name
repliedToUser.lastName string Yes User’s last name
createdAt string No ISO 8601 timestamp of when the event occurred on the platform
dispatchedAt string No ISO 8601 timestamp of when this webhook was dispatched

Example payload (comment.replied):

{
  "eventType": "comment.replied",
  "tenantId": "acme-corp",
  "post": { "id": "post_xyz789" },
  "page": {
    "id": "pg_abc123",
    "title": "Company Announcements",
    "urls": ["https://acme.learn.link/pages/pg_abc123"]
  },
  "comment": {
    "author": {
      "id": "usr_abc123",
      "reference": "EMP-00042",
      "email": "jane.smith@acme.com",
      "firstName": "Jane",
      "lastName": "Smith"
    },
    "text": "Great point, totally agree!"
  },
  "user": {
    "id": "usr_abc123",
    "reference": "EMP-00042",
    "email": "jane.smith@acme.com",
    "firstName": "Jane",
    "lastName": "Smith"
  },
  "repliedToUser": {
    "id": "usr_def456",
    "reference": "EMP-00043",
    "email": "john.doe@acme.com",
    "firstName": "John",
    "lastName": "Does"
  },
  "users": [],
  "createdAt": "2024-03-15T10:30:00.000Z",
  "dispatchedAt": "2024-03-15T10:30:01.234Z"
}

moderation.* — Moderation Events

Fired when a post or comment is flagged for moderation.

Event types: moderation.post-flagged · moderation.comment-flagged

Field Type Nullable Description
eventType string No moderation.post-flagged or moderation.comment-flagged
tenantId string No Your Thrive tenant identifier
user object Yes The user who was flagged, omitted if no user associated
user.id string No User ID
user.reference string Yes External reference (e.g. HR system ID)
user.email string Yes User email address
user.firstName string Yes User’s first name
user.lastName string Yes User’s last name
flag object No Details of the flag raised
flag.id string No Flag ID
flag.type string No Flag type
flag.reason string Yes Reason provided by the reporter
flag.message string Yes Additional message from the reporter
flag.status string Yes Current flag status
flag.reporterId string Yes ID of the user who raised the flag
flag.reportedUserId string Yes ID of the user who was reported
flag.createdAt string Yes ISO 8601 timestamp of when the flag was raised
content object No The content item that was flagged
content.id string No Content ID
content.title string Yes Content title
content.pageId string No Page ID
content.pageTitle string Yes Page title
content.contentType string Yes Content type
urls string[] No Full URLs to the parent page on each of your configured tenant domains
createdAt string No ISO 8601 timestamp of when the event occurred on the platform
dispatchedAt string No ISO 8601 timestamp of when this webhook was dispatched

Example payload (moderation.post-flagged):

{
  "eventType": "moderation.post-flagged",
  "tenantId": "acme-corp",
  "user": {
	  "id": "usr_abc123",
    "reference": "EMP-00042",
    "email": "jane.smith@acme.com",
    "firstName": "Jane",
    "lastName": "Smith"
  },
  "flag": {
    "id": "flag_001",
    "type": "inappropriate",
    "reason": "Offensive language",
    "message": "This post contains inappropriate content",
    "status": "open",
    "reporterId": "usr_abc123",
    "reportedUserId": "usr_def456",
    "createdAt": "2024-03-15T10:30:00.000Z"
  },
  "content": {
    "id": "post_xyz789",
    "title": "Controversial post",
    "pageId": "pg_abc123",
    "pageTitle": "Company Announcements",
    "contentType": "community"
  },
  "urls": ["https://acme.learn.link/pages/pg_abc123"],
  "createdAt": "2024-03-15T10:30:00.000Z",
  "dispatchedAt": "2024-03-15T10:30:01.234Z"
}