1. Why Webhooks Matter for Champion Orgs
Webhooks lets Gloo Impact push key events straight to your tech stack in real time. No polling, no spreadsheets—just instant context for the people who need it.
Typical wins
LMS auto-enrollment – enroll approved participants instantly.
CRM tracking – create leads or opportunities the moment an applicant appears.
Admin alerts – email or Slack the program manager whenever an approval or rejection lands.
Stripe deposits – kick off a checkout flow as soon as the Sponsor green‑lights an application.
2. Full Event Catalogue (Champion Orgs)
Event | What it means | Common automations |
applicant.joined_waitlist | A user joins your program waitlist. | Add to CRM, send nurture drip |
applicant.ready_for_program | Applicant is approved for a program and ready to start. | Send applicant custom onboarding email. |
milestone.status_changed | Any program milestone changes state. | Send Slack message to case-worker about next steps. |
payment.received | Impact records a payment routed to you. | Update bookkeeping, send receipt |
program_application.pending_sponsor | Champion said yes; Sponsor still deciding. | Email applicant: "Waiting on sponsor" |
program_application.sponsor_approved | Sponsor said yes; Champion has not. | Trigger Stripe checkout for deposit │ |
program_application.rejected | Application rejected by Champion or Sponsor. | Launch rejection email series |
You can attach multiple webhooks to the same event—e.g., one to Zapier and one to Slack.
3. Creating a Webhook
Go to Settings → Integrations.
Click + Create webhook.
Choose an Event, add a clear Nickname, and paste your HTTPS POST URL.
Save. Gloo Impact starts sending deliveries immediately.
Tip: Point the URL to webhook.site first so you can inspect payloads before wiring production.
4. Payload Schemas (v 1.0)
All events share this envelope:
{
"event": "<event_key>",
"name": "<webhook_name>",
"version": "1.0",
"timestamp": "2025-04-28T22:10:00Z",
"data": { /* event‑specific */ }
}
4.1 program_application.pending_sponsor
{
"event": "program_application.pending_sponsor",
"name": "Champion Approved – Waiting on Sponsor",
"version": "1.0",
"timestamp": "2025-04-28T22:09:00Z",
"data": {
"offeringApplicationId": "app_12345",
"offeringId": "off_008",
"applicantEmail": "maria@example.com",
"applicantName": "Maria Garcia"
}
}
Use it to keep applicants in‑the‑loop while the Sponsor reviews.
4.2 program_application.sponsor_approved
{
"event": "program_application.sponsor_approved",
"name": "Sponsor Approved – Action Required",
"version": "1.0",
"timestamp": "2025-04-28T22:10:00Z",
"data": {
"offeringApplicationId": "app_12345",
"scholarshipId": "sch_77777",
"scholarshipApplicationId": "scapp_55555",
"rejectionSource": null,
"offeringVersionId": "offver_001",
"offeringId": "off_008",
"applicantUserId": "usr_4321",
"applicantEmail": "jordan@example.com",
"applicantName": "Jordan Lee",
"participantId": "part_9876",
"participantEmail": "jordan@example.com",
"participantName": "Jordan Lee",
"applicationFormVersionId": "form_v2",
"scholarshipApplicationFormVersionId": "sform_v1"
}
}
Use it to trigger an off‑platform deposit checkout (e.g., create a Stripe Checkout Session) or begin any Champion‑specific onboarding steps now that funding is guaranteed.
4.3 program_application.rejected
{
"event": "program_application.rejected",
"name": "Application Rejected",
"version": "1.0",
"timestamp": "2025-04-28T22:11:00Z",
"data": {
"offeringApplicationId": "app_98765",
"rejectionSource": "sponsor",
"reason": "Funding limits reached"
}
}
Use it to launch a personalized rejection email flow or invite the applicant to alternative programs.
5. Security & Reliability
Signature header – Each request includes X‑Impact‑Signature (HMAC‑SHA256). Verify with your Signing Secret.
Retries – Impact retries up to five times with exponential back‑off if your endpoint doesn’t return 2xx.
Webhook logs – Inspect attempts and re‑send failures in Settings → Integrations → Webhook Logs.
6. Best‑Practice Recipes
Tool | Trigger | Action |
Zapier | program_application.pending_sponsor | Gmail → "Sponsor review in progress" email |
Make | program_application.sponsor_approved | Stripe → Create Checkout Session for deposit |
Slack App | program_application.rejected | Post to #impact‑alerts with reason |
HubSpot | applicant.joined_waitlist | Create Deal & assign advisor |
7. Troubleshooting
Issue | Cause | Fix |
Duplicate actions | Retries after timeout | De‑dupe with delivery_id |
Signature mismatch | Wrong secret | Use raw body + correct secret |
Deliveries show Failed | Non‑2xx response | Respond 200 OK quickly, then process async |