WorkRamp · AsyncAPI Specification

Workramp Webhooks

Version

View Spec View on GitHub Learning ManagementRevenue EnablementSales EnablementTrainingOnboardingLMSAssessmentsCertificationsCoachingGo-To-MarketSCIMSCORMWebhookCustomer EducationAsyncAPIWebhooksEvents

AsyncAPI Specification

Raw ↑
generated: '2026-08-13'
method: searched
source: https://developers.workramp.com/reference/elc-webhooks-intro
spec_type: none
asyncapi_published: false
note: >-
  WorkRamp publishes no AsyncAPI, CloudEvents or event-schema document. It does publish a
  real, documented webhook surface with a named event catalog, per-event payload field
  tables and self-service subscription management endpoints, so this artifact captures the
  webhook catalog verbatim from the docs and from the two harvested OpenAPI documents. No
  event was invented.
docs:
  intro: https://developers.workramp.com/reference/elc-webhooks-intro
  user_object: https://developers.workramp.com/reference/user-object-1
transport:
  protocol: https
  delivery: >-
    WorkRamp POSTs the event payload to a subscriber-provided endpoint when the event
    occurs. Subscription URLs must be HTTPS.
  content_type: application/json
  signature: none documented
  secret: none documented
  retries: not documented
  ordering: not documented
  replay: not documented
subscription_management:
  employee_learning_cloud:
    list: GET /api/v1/webhook_subscriptions
    get: GET /api/v1/webhook_subscriptions/{webhook_subscription_id}
    create: POST /api/v1/webhook_subscriptions
    update: PATCH /api/v1/webhook_subscriptions/{webhook_subscription_id}
    delete: DELETE /api/v1/webhook_subscriptions/{webhook_subscription_id}
    create_body: {name: string, url: 'https endpoint', eventTypes: [string]}
    source: openapi/workramp-json-api-openapi.yml
  academy:
    list: GET /api/v1/academies/{academy_id}/webhook_subscriptions
    get: GET /api/v1/academies/{academy_id}/webhook_subscriptions/{subscription_id}
    create: POST /api/v1/academies/{academy_id}/webhook_subscriptions
    update: PATCH /api/v1/academies/{academy_id}/webhook_subscriptions/{subscription_id}
    delete: DELETE /api/v1/academies/{academy_id}/webhook_subscriptions/{subscription_id}
    create_body: {webhookName: string, url: 'https endpoint', eventTypes: [string]}
    source: openapi/workramp-json-api-openapi.yml
common_payload:
  fields:
    - {name: eventType, type: string, description: type of the event}
    - {name: timestamp, type: integer, description: UNIX epoch milliseconds when the event occurred}
    - {name: user, type: object, description: 'the user this event is for (id, name, email, isAdmin, isDeleted, isPermanentlyDeleted, createdAt, updatedAt, groups[], customAttributes[], userIdentifiers[], managers[])'}
  note: Every event carries these three fields; the resource and its assignment object are added per event family.
event_count: 20
events:
  - name: assignmentCreated.challenge
    family: challenge-assignment
    description: A Challenge assignment has been created for a user.
    payload: [eventType, timestamp, user, challenge, challengeAssignment]
    docs: https://developers.workramp.com/reference/elc-webhooks-challenge-assignment
  - name: assignmentCompleted.challenge
    family: challenge-assignment
    docs: https://developers.workramp.com/reference/elc-webhooks-challenge-assignment
  - name: assignmentProgress.challenge
    family: challenge-assignment
    docs: https://developers.workramp.com/reference/elc-webhooks-challenge-assignment
  - name: assignmentDeleted.challenge
    family: challenge-assignment
    docs: https://developers.workramp.com/reference/elc-webhooks-challenge-assignment
  - name: assignmentCreated.guide
    family: guide-assignment
    description: A Course/Guide assignment has been created for a user.
    payload: [eventType, timestamp, user, guide, guideAssignment]
    docs: https://developers.workramp.com/reference/elc-webhooks-guide-assignment
  - name: assignmentCompleted.guide
    family: guide-assignment
    docs: https://developers.workramp.com/reference/elc-webhooks-guide-assignment
  - name: assignmentProgress.guide
    family: guide-assignment
    docs: https://developers.workramp.com/reference/elc-webhooks-guide-assignment
  - name: assignmentDeleted.guide
    family: guide-assignment
    docs: https://developers.workramp.com/reference/elc-webhooks-guide-assignment
  - name: assignmentCreated.path
    family: path-assignment
    description: A Path / Training Series assignment has been created for a user.
    payload: [eventType, timestamp, user, path, pathAssignment, assignmentCompletionUserReportUrl]
    docs: https://developers.workramp.com/reference/elc-webhooks-training-series-assignment
  - name: assignmentCompleted.path
    family: path-assignment
    docs: https://developers.workramp.com/reference/elc-webhooks-training-series-assignment
  - name: assignmentDeleted.path
    family: path-assignment
    docs: https://developers.workramp.com/reference/elc-webhooks-training-series-assignment
  - name: assignmentCreated.resource
    family: resource-assignment
    payload: [eventType, timestamp, user, resource, resourceAssignment]
    docs: https://developers.workramp.com/reference/elc-webhooks-resource-assignment
  - name: assignmentCompleted.resource
    family: resource-assignment
    docs: https://developers.workramp.com/reference/elc-webhooks-resource-assignment
  - name: assignmentDeleted.resource
    family: resource-assignment
    docs: https://developers.workramp.com/reference/elc-webhooks-resource-assignment
  - name: assignmentCreated.scorm
    family: scorm-assignment
    payload: [eventType, timestamp, user, scorm, scormAssignment]
    docs: https://developers.workramp.com/reference/elc-webhooks-scorm-assignment
  - name: assignmentCompleted.scorm
    family: scorm-assignment
    docs: https://developers.workramp.com/reference/elc-webhooks-scorm-assignment
  - name: assignmentProgress.scorm
    family: scorm-assignment
    docs: https://developers.workramp.com/reference/elc-webhooks-scorm-assignment
  - name: assignmentDeleted.scorm
    family: scorm-assignment
    docs: https://developers.workramp.com/reference/elc-webhooks-scorm-assignment
  - name: eventSession.attendee.created
    family: event-session-attendee
    docs: https://developers.workramp.com/reference/elc-webhooks-event-attendee
  - name: eventSession.attendee.statusChanged
    family: event-session-attendee
    docs: https://developers.workramp.com/reference/elc-webhooks-event-attendee
  - name: eventSession.attendee.deleted
    family: event-session-attendee
    docs: https://developers.workramp.com/reference/elc-webhooks-event-attendee
  - name: userCreated
    family: user
    description: A user has been created.
    payload: [eventType, timestamp, user]
    docs: https://developers.workramp.com/reference/elc-webhooks-intro
  - name: userDeleted
    family: user
    description: A user has been deleted.
    payload: [eventType, timestamp, user]
    docs: https://developers.workramp.com/reference/elc-webhooks-intro
payload_objects:
  challengeAssignment:
    fields: [id, challengeId, calculatedGrade, completionPercentage, numDaysOverdue, status, isCompleted, isCompletedOnTime, isFullyGraded, isOverdue, isPartiallyGraded, passed, completedAt, createdAt, dueDate, firstViewedAt, lastViewedAt, reviewersDueDate, updatedAt]
    status_enum: [not_started, in_progress, overdue, needs_grading, completed, failed]
  pathAssignment:
    fields: [id, assignedFrom, assignerId, completionPercentage, numModules, numModulesCompleted, numModulesFailed, numModulesGraded, overallGrade, status, timeSpent, isArchived, isBulkCompleting, isCompleted, isFailed, isPassed, isSubmittedOnTime, completedAt, createdAt, dueDate, expiresAt]
    status_enum: [assigned, not_started, in_progress, overdue, needs_grading, completed, failed]
  resourceAssignment:
    fields: [id, isCompleted, completedAt, createdAt, updatedAt]
  guide:
    fields: [id, displayTitle, timeEstimateSeconds]
  path:
    fields: [id, displayTitle, totalTimeEstimate]
  challenge:
    fields: [id, displayTitle]
  resource:
    fields: [id, displayTitle]
gaps:
  - No AsyncAPI or machine-readable event schema — the catalog is prose tables only.
  - No signature, HMAC secret or verification scheme is documented for inbound deliveries.
  - No retry policy, delivery guarantee, ordering guarantee or replay endpoint documented.
  - No webhook test/ping endpoint.