Skip to content

Integrations

Connect PulseLMS to your systems with a scoped partner API, signed webhooks, a Discord bot, enterprise SSO, and branded email notifications.

API keys and the partner API

The partner API lets your own applications read from PulseLMS over a scoped, key-authenticated surface at /api/public/v1. Full reference is at /api/docs.

Manage keys under Settings → API Keys (shown when the api_access feature flag is on):

  1. Enter a key name (for example, "Zapier") and click Create key.
  2. Copy the secret from the one-time panel.
  3. To retire a key, click Revoke; applications using it lose access immediately.

Each key row shows its prefix, scopes, and last-used date.

The secret is shown only once

A key's full secret is displayed once, at creation. It is never shown again. Copy it immediately and store it somewhere safe; if you lose it, revoke the key and create a new one.

Webhooks

Webhooks push events to your own HTTPS endpoints so your systems can react in real time. Manage them under Settings → Webhooks.

To add one, click Add endpoint, enter an https:// URL, choose All events or specific event types, and save. Use Test on any endpoint to send a signed sample delivery, and Edit to change or disable it.

The endpoint must be public HTTPS

PulseLMS delivers from its own server, so the URL has to be an https:// address reachable on the public internet. Private addresses (localhost, 127.0.0.1, 10.x, 192.168.x, 169.254.x) are refused, and a URL with a username or password in it is refused too. Redirects are not followed: point the endpoint at its final destination rather than something that forwards.

If a destination stops resolving or starts pointing somewhere private, the delivery is skipped and counts as a failure, so a receiver that moves inside a private network goes quiet rather than silently succeeding.

Event types

Event Fired when
enrollment.assigned A course is assigned
enrollment.completed A learner completes a course
certificate.issued A certificate is issued
course.published A course is published
program.completed A learner finishes a program

Choosing All events also subscribes the endpoint to any future event types.

Verifying deliveries

Every delivery carries an HMAC signature header:

X-PulseLMS-Signature: sha256=HMAC_SHA256(secret, body)

Recompute the HMAC over the raw request body using your endpoint's signing secret and compare it before trusting a payload.

The signing secret is shown only once

Like API keys, a webhook's signing secret is revealed once, right after you create the endpoint. Copy it then. It is required to verify the X-PulseLMS-Signature header on every delivery.

Endpoints auto-disable after repeated failures

An endpoint that keeps failing accumulates a failure count and is automatically disabled to protect your queue. Fix the endpoint, then re-enable it by editing it and toggling Active; re-enabling resets the failure count.

Discord bot

The PulseLMS Discord bot links your Discord community to your organization: members connect their accounts, and Discord roles you map to courses enroll linked members automatically. It authenticates with an API key (above) and is gated by the discord feature flag.

At a glance:

  • An admin runs /setup api_key:pls_… in Discord to connect the server.
  • /map add role:@Role course_id:… maps a Discord role to a course.
  • Members run /link to connect their accounts, then role changes keep their enrollments in sync.

Enrollment is additive: the bot grants course access from roles but never revokes it, and it never modifies Discord roles.

See the full Discord integration guide for setup, commands, mapping, and troubleshooting.

Enterprise SSO

PulseLMS delegates all sign-in to the shared identity provider, so enterprise SSO (SAML or OIDC: Okta, Azure AD, Google Workspace, ADFS, and so on) is a configuration task rather than an in-app setting. Users are provisioned just-in-time on their first successful SSO login, and land in exactly the organization their identity dictates.

SSO setup is handled by PulseTech support

There are no SSO controls inside the admin UI. To federate your organization with your own IdP, contact PulseTech support with your IdP metadata and they will wire it up. SCIM automated provisioning is not currently offered; JIT provisioning through SSO covers onboarding for most customers.

Email and notifications

Every member has an in-app notification bell and can receive branded emails for the same events (assignments, due-soon and overdue reminders, completions, certificates issued, reset approvals, and manager nudges).

Notification behavior worth knowing:

  • Email is skipped while a user is active. If a member is currently using the app they will see the bell, so the duplicate email is not sent.
  • A daily sweep sends due-soon (within 72 hours) and overdue reminders, de-duplicated so learners are not spammed.
  • Per-user email opt-out. Any member can turn off notification emails for their own account. In-app bell alerts are always delivered.