POST request with details about the learning and the learner.
Webhooks push events out of Juno. To pull data from Juno on your own schedule, use the Juno API.
Set up a webhook
1
Open automations
Open Automation on a learning item, or go to Admin → Automations.
2
Choose the action
Create an automation, pick a trigger, and select Send an HTTP request (Webhook) as the action.
3
Fill in the request
- Method —
POSTis the only option. - Url — your endpoint.
- Additional data (JSON) — optional. Any extra values you want included, in JSON format.
- Authorization — required. Enter your token only; Juno sends it as
Authorization: Bearer <token>.
4
Test and save
Select Trigger the HTTP request to send a test request, then save the automation.
Triggers
The action is available with these triggers, depending on the content type:
Juno sends one request per learner the automation matches. Dry runs don’t send requests.
Request format
Every request has the headerContent-Type: application/json and a JSON body with four keys:
trainingData—id,title,description,type(for examplecourseorjourney),photoUrl, and the learner’sstartDateandcompletedDate(YYYY-MM-DD HH:mm:ss). Step triggers also includestepNumberandstepTitle.userData—_id,primaryEmail,firstName,lastName,fullName,department,location,jobTitle,role, andcustomAttributes.automationTrigger— the trigger ID, such astraining-completedorquiz-passed.additionalData— what you entered in Additional data (JSON).
On automated runs,
additionalData arrives as the text you entered — parse it as JSON on your side. Values that don’t apply (for example completedDate before completion) are left out.Delivery and retries
- Each attempt times out after 30 seconds.
- Juno makes up to 3 attempts, waiting 5–15 seconds between them.
- A 2xx response counts as success. Anything else — after the last attempt — is marked failed, with the status code as the error.
- Juno follows up to 3 redirects. After that, the request fails with
TOO_MANY_REDIRECTS.

