Issue Certificates from Klaviyo
Send a verifiable certificate to every profile in a Klaviyo list or segment, or let a Flow issue one automatically when someone completes a course, attends an event or buys a program.
- Flow Webhook action → certificate issued, no code
- Bulk send to any list or segment; already-issued profiles are skipped
- Certificate link and ID written back to the profile
- Certificate Issued event so your own Klaviyo email delivers it
Flow: Course completed
Trigger → Webhook: IssueBadge → Email: your certificate
✓ Your Klaviyo email flow sends the certificate link — with Klaviyo's open and click analytics.
Set up in 3 steps
Works on every Klaviyo plan. Nothing to install in Klaviyo.
Connect Klaviyo and IssueBadge
Click Connect Klaviyo, approve the requested access, then paste your IssueBadge API key (app.issuebadge.com → Developer → API key). The connection is stored securely for your Klaviyo account.
Send in bulk — or automate with a Flow
Pick a list or segment and a certificate template, then Send certificates. For automation, copy the Webhook URL and JSON body shown in the app into a Klaviyo Flow Webhook action — every profile that reaches the step gets a certificate.
Deliver it your way
Each issue writes issuebadge_certificate_url, issuebadge_certificate_id and issuebadge_issued_at to the profile and records a Certificate Issued event. Build a Flow on that event to send a branded email with the certificate link, or let IssueBadge email it.
Webhook body used by the Flow action
{
"email": "{{ person.email }}",
"first_name": "{{ person.first_name }}",
"last_name": "{{ person.last_name }}",
"badge_id": "YOUR_TEMPLATE_ID"
}
The app shows this body pre-filled with your template IDs. Repeated triggers for the same profile and template are skipped automatically.
Frequently asked questions
Does it work on the free Klaviyo plan?
Yes. Flows with the Webhook action and the profile/list APIs are available on all plans.
Where do certificates get emailed from?
By default IssueBadge emails the recipient. If you prefer Klaviyo's branding and analytics, build a Flow on the Certificate Issued event and link to <?php echo e(person|lookup:'issuebadge_certificate_url'); ?>.
What if a profile has no name?
The app uses the Klaviyo first/last name; if missing, the email prefix. You can pass any name in the webhook body.
Can I issue different certificates for different courses?
Yes — each Flow webhook body carries its own badge_id, and the bulk sender lets you pick the template per run.
Is data secure?
Klaviyo tokens and your IssueBadge key are stored server-side, never in the browser. Only name and email of recipients are sent to IssueBadge to issue the certificate.
Every Klaviyo profile, certified
Connect once. Issue in bulk or automatically from your Flows.
Connect Klaviyo