Key takeaways
- Manual badge issuing is not scalable. If you run a monthly or weekly webinar series, automation saves 30–90 minutes of admin work per session.
- IssueBadge.com provides a REST API that lets you trigger badge issuance programmatically from any platform or automation tool.
- No-code option available: Zapier and Make (Integromat) connectors allow you to build full automation flows without writing a single line of code.
- Webhook-based triggers from platforms like Zoom, Livestorm, and GoToWebinar feed attendance data directly into your badge workflow.
- Series-completion badges can be issued automatically once an attendee crosses a session-count threshold, tracked via a spreadsheet or database.
- Attendance gating, only issuing badges to attendees who stayed for 75%+ of the session, is configurable without code using filter steps in Zapier.
If you run recurring webinars, a monthly professional development series, a weekly customer education program, or a quarterly compliance training cycle, you already know the post-event admin grind. The webinar ends, you pull the attendance report, cross-reference it with registrations, batch-upload names and emails into a badge tool, and send delivery emails one by one. Multiply that by 12 sessions a year and you are spending days on a task that should take minutes.
The solution is full automation: connect your webinar platform to IssueBadge.com so that attendance data flows in and badges flow out, automatically, every single session. This guide walks you through exactly how to do that, from generating your first API key to building multi-session series-completion workflows.
Figure 1: End-to-end automated badge issuing workflow for recurring webinars. Attendance data flows from the webinar platform through an automation layer into the IssueBadge.com API, which delivers badges directly to recipients. A parallel tracker handles multi-session series-completion logic.
Why manual badge issuing fails at scale
Manual badge issuing is manageable when you run one event per quarter. It becomes a real problem when you run recurring webinars. Consider a professional association hosting a 10-session monthly leadership series with 300 attendees per session. That is potentially 3,000 individual badge issuances per year, each one requiring someone to copy an email address, fill in a name, click send, and repeat.
The real costs of manual processes go beyond admin time. Delays between session completion and badge delivery reduce the credential's perceived value. Errors in attendee names or email addresses generate support tickets. Inconsistent branding across batches looks unprofessional. And when you scale to multiple facilitators running parallel series, coordination becomes its own project.
Automation removes all of this. With a properly configured workflow, a badge is triggered within seconds of a session ending, before the attendee has even closed their browser tab. It lands in their inbox branded correctly, linked to a verifiable credential page, and ready to share on LinkedIn.
A recurring webinar is any series where the same badge template (or a session-specific variant) is issued after each session. This includes weekly product demos, monthly CPD/CE webinars, quarterly compliance training, and multi-session bootcamp cohorts. The automation logic is the same, only the trigger frequency and series-completion rules differ.
Prerequisites: What you need before you start
Before building your automation, you need a few things in place. Getting this checklist done first will save you significant troubleshooting time.
| Requirement | What It Is | Where to Get It |
|---|---|---|
| IssueBadge.com account | Starter plan or above (API access required) | issuebadge.com/get-started |
| Badge template created | The visual design + metadata for your webinar badge | IssueBadge.com badge builder |
| Template ID | Unique identifier for the badge template, used in API calls | IssueBadge.com dashboard → Templates → Template ID |
| API key | Your secret authentication token for the API | IssueBadge.com dashboard → Settings → API Keys |
| Webinar platform webhook support | Ability to fire a webhook or connect to Zapier when a session ends | Your webinar platform's developer or integrations settings |
| Zapier account (no-code option) | Required if you prefer no-code automation | zapier.com |
Step-by-step: Setting up automated badge issuing
There are three paths to automation, depending on your technical comfort level and webinar platform: direct API integration (for developers), Zapier no-code workflow (for everyone else), and native webhook triggers (for platforms that support them). This guide covers all three.
Create your webinar badge template on IssueBadge.com
Log in to your IssueBadge.com account and navigate to Templates. Click "New Template" and use the badge builder to design your webinar attendance badge. Set the badge name (e.g., "Monthly Leadership Webinar, Attendance"), add a description with the skills or knowledge evidenced, set an issuer name, and optionally configure an expiry period. Save the template and copy the Template ID from the template detail page, you will need this in every API call.
Generate your API key
Go to Settings → API Keys in your IssueBadge.com dashboard. Click "Generate New Key," give it a label (e.g., "Webinar Automation, Zoom"), and copy the key immediately, it will only be shown once. Store it securely in an environment variable, a password manager, or your Zapier account's secure field storage. Never expose your API key in client-side code or public repositories.
Configure your webinar platform to export attendance data
Most major webinar platforms support either a post-session webhook or a Zapier trigger that fires when a session ends. In Zoom, navigate to Account Settings → Integrations → Webhooks and add a new endpoint. In Hopin or GoToWebinar, configure the "session ended" event in the Zapier trigger. The critical fields you need from the attendance data are: attendee email, attendee name, session title, session date, and time attended in minutes (for attendance gating).
Add an attendance gating filter
Not every registrant who joins deserves a badge, someone who pops in for five minutes should not receive the same credential as someone who stayed the whole session. In Zapier, add a Filter step immediately after the trigger. Set the condition to: "Time Attended (minutes) is greater than or equal to [your threshold]." For a 60-minute webinar, a 45-minute threshold (75%) is the standard. For a 90-minute session, use 67 minutes. This filter protects the badge program's credibility.
Configure the IssueBadge.com API call in Zapier
Add a Webhooks by Zapier action step, set the method to POST, and enter the IssueBadge.com API endpoint. In the Headers, add Authorization: Bearer YOUR_API_KEY and Content-type: application/json. In the Body, map the attendee fields from your trigger step to the required API fields (email, name, template_id). Test the step with a sample attendee record to confirm a badge is issued correctly before activating the Zap.
Test end-to-end and activate
Run a test webinar session (even a 5-minute internal one) with a team member as the attendee. Confirm the webhook fires, the Zapier filter passes, the API call succeeds, and the badge email lands in the attendee's inbox with correct name, date, and badge design. Check the IssueBadge.com dashboard to confirm the badge appears in your issued credentials list. Once confirmed, activate the Zap, your automation is live.
API integration: Direct setup for developers
If you prefer to bypass Zapier and call the IssueBadge.com API directly from your backend or automation scripts, the examples below show the core endpoint and request structure.
Issuing a single badge via REST API
The primary endpoint for issuing a badge is a simple authenticated POST request. The following example shows the full request structure:
# Issue a badge via the IssueBadge.com REST API # POST https://api.issuebadge.com/v1/badges/issue curl -X POST https://api.issuebadge.com/v1/badges/issue \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-type: application/json" \ -d '{ "template_id": "tpl_abc123xyz", "recipient_email": "jane.doe@example.com", "recipient_name": "Jane Doe", "issue_date": "2026-03-16", "metadata": { "webinar_title": "Monthly Leadership Series, Session 4", "session_date": "2026-03-16", "duration_attended_minutes": 52 } }'
Batch issuing after a session
For sessions with many attendees, use the batch endpoint to issue all badges in a single API call. One request per attendee will hit rate limits quickly; the batch endpoint handles the whole session at once.
# Batch issue badges for all qualified attendees # POST https://api.issuebadge.com/v1/badges/batch-issue curl -X POST https://api.issuebadge.com/v1/badges/batch-issue \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-type: application/json" \ -d '{ "template_id": "tpl_abc123xyz", "recipients": [ { "email": "attendee1@example.com", "name": "Alice Chen", "issue_date": "2026-03-16" }, { "email": "attendee2@example.com", "name": "David Park", "issue_date": "2026-03-16" } ], "send_email_notification": true }'
The IssueBadge.com API allows up to 100 requests per minute on Starter plans and 500 per minute on Pro plans. For sessions with more than 100 attendees, always use the batch endpoint rather than individual calls. If you are processing attendance data from a CSV post-session, build a small delay between batch calls to stay within rate limits. Full API documentation is available at issuebadge.com/api.
No-code automation: Building the Zapier workflow
For webinar hosts who don't write code, Zapier is the fastest path to automated badge issuing. The following five-step Zap covers the full flow from session end to badge delivery.
Zap architecture: Five steps to full automation
| Zap Step | App | Action | Key Configuration |
|---|---|---|---|
| 1. Trigger | Zoom / GoToWebinar / Demio | Webinar session ended / New attendee record | Select your recurring webinar series |
| 2. Filter | Filter by Zapier | Only continue if attendance meets threshold | Attendance duration ≥ 75% of session length |
| 3. Format | Formatter by Zapier | Format date to Yyyy-mm-DD | Maps session date to API-required ISO format |
| 4. Action | Webhooks by Zapier | POST to IssueBadge.com API | Endpoint, API key header, JSON body with mapped fields |
| 5. Notify (optional) | Slack / Gmail / Teams | Send internal notification of batch issued | Send summary message to your team channel |
Configuring the webhook step in detail
In the Webhooks by Zapier action step, use the following configuration:
- Method: POST
- URL:
https://api.issuebadge.com/v1/badges/issue - Headers:
Authorization: Bearer [your API key stored in Zapier secure storage]andContent-type: application/json - Data: Set to JSON format. Map
template_idas a static value (your Template ID),recipient_emailto the attendee email field from the trigger,recipient_nameto the attendee name field, andissue_dateto the formatted date from Step 3. - Unflatten: Set to "yes" to ensure nested JSON fields are processed correctly.
Security note: Never paste your IssueBadge.com API key directly into a Zapier field that is not marked as a password or secure field. Use Zapier's built-in credential storage or a Zapier Environment Variable to store the key. This prevents it from appearing in Zap history logs where other team members could view it.
Direct webhook integration: Platforms with native webhook support
Some webinar platforms support firing a raw webhook to an endpoint you specify, bypassing Zapier entirely. This is the most direct approach and produces the lowest latency between session end and badge delivery.
Supported platforms for direct webhooks
The following platforms support direct webhook configuration for attendance events:
- Livestorm, Webhooks available under Settings → Webhooks. Fire on "Registrant completed session."
- BigMarker, Webhook configuration in Event Settings → Integrations.
- HeySummit, Webhook trigger on "Attendee marked as attended."
- Airmeet, API access available under event settings for enterprise accounts.
For these platforms, configure the webhook destination URL to point to a small middleware endpoint you control (a serverless function on AWS Lambda, Google Cloud Functions, or Cloudflare Workers works well). The middleware validates the incoming payload, applies your attendance threshold logic, and then calls the IssueBadge.com API to issue the badge.
Serverless middleware example (Node.js)
// Cloudflare Worker / AWS Lambda handler // Receives webinar platform webhook, issues badge if threshold met export async function handleWebhook(request) { const payload = await request.json(); const { attendee_email, attendee_name, duration_seconds, total_duration_seconds } = payload; // Attendance gate: require 75% attendance const attendanceRatio = duration_seconds / total_duration_seconds; if (attendanceRatio < 0.75) return new Response("Below threshold", { status: 200 }); const response = await fetch("https://api.issuebadge.com/v1/badges/issue", { method: "POST", headers: { "Authorization": `Bearer ${ISSUEBADGE_API_KEY}`, "Content-type": "application/json" }, body: JSON.stringify({ template_id: BADGE_TEMPLATE_ID, recipient_email: attendee_email, recipient_name: attendee_name, issue_date: new Date().toISOString().split("T")[0], send_email_notification: true }) }); return new Response("Badge issued", { status: 200 }); }
Automating series-completion badges
Session-level attendance badges are straightforward to automate. The more compelling workflow, and the one that actually motivates recurring attendance, is the series-completion badge: a higher-status credential issued automatically once an attendee hits a threshold number of sessions.
Architecture for multi-session tracking
No webinar platform natively tracks cross-session attendance thresholds for badge purposes, so you need an intermediate data store. A Google Sheet or Airtable base handles this well for most use cases. Here is the logic:
- After each webinar session, your Zap issues the session badge (as described above) and appends a row to a Google Sheet with the attendee's email and the session identifier.
- A second Zap runs a "lookup and count", for every new row added to the sheet, it uses a Lookup step to count how many rows exist for that email address.
- A Filter step checks whether the count equals the completion threshold (e.g., 8 out of 10 sessions, or all 6 sessions attended).
- If the threshold is met, a POST action calls the IssueBadge.com API with the series-completion template ID, issuing the higher-level badge automatically.
Series-completion badges should be visually and metadata-distinguishable from session attendance badges. Use a gold or premium color scheme, include the full series name and date range in the badge description, and set a longer expiry period (or no expiry) to reflect the greater achievement. Adding specific learning outcomes or competencies evidenced by completing the full series dramatically increases the badge's LinkedIn shareability.
Troubleshooting common automation issues
Even well-configured automations hit snags during initial setup. These are the four problems webinar hosts run into most often, and how to fix them.
Attendee names appearing as "undefined" on badges
This happens when the webinar platform's attendee record does not include a parsed first and last name, some platforms return a single "full name" field while the API mapping expects separate first and last name fields. Fix this by adding a Formatter by Zapier step between the trigger and the API call. Use the "Split Text" action to split the full name on the space character, producing a separate first name and last name field that can be mapped correctly.
Badges issuing to non-attendees (Registrants who did not attend)
This indicates the Zapier trigger is firing on "new registrant" rather than "new attendee." Verify your trigger event is scoped to attendees who actually joined the session. In Zoom, use the "Webinar Registrant Created" trigger only if you want to pre-issue badges; for post-attendance issuing, use a trigger from the attendance report export or configure the session-end webhook.
API returning 401 unauthorized
The most common cause is an incorrect Authorization header format. The header must be exactly Authorization: Bearer YOUR_API_KEY, with the word "Bearer" followed by a single space, then the key. Confirm there are no trailing spaces after the key, and that you are using the API key (not your account password or OAuth token) in this header.
Duplicate badges being issued
This typically occurs when both a Zapier Zap and a direct webhook are configured for the same session, or when a Zap is accidentally turned on twice. Check your IssueBadge.com issued badges log to identify the duplicate issue timestamps, then trace back through your automation tool's task history to identify which step fired twice. Use the IssueBadge.com API's idempotency key feature (X-Idempotency-key header) to prevent duplicate issuance even if the same API call fires more than once.
Best practices for sustainable webinar badge automation
Automation that is not maintained degrades over time. Webinar platforms update their APIs, Zapier apps change trigger structures, badge templates evolve. These practices will keep your workflow reliable.
- Use a dedicated API key per automation. If you run multiple webinar series, create a separate API key for each Zap or integration. This way, if one key needs to be revoked, the other workflows are unaffected.
- Test after every webinar platform update. Platforms sometimes change the field names in their webhook payloads during major updates. Run a test session after any platform release notes mention API changes.
- Monitor the IssueBadge.com issued badges dashboard weekly. A sudden drop in issued badges relative to expected session attendance is the earliest signal that something in your automation chain has broken.
- Build a fallback notification. Add a final Zap step that sends a Slack or email alert if the API call returns an error status code. This ensures issues are caught immediately rather than after dozens of attendees report not receiving their badges.
- Archive session attendance data. Retain a copy of every session's attendance export independently of your automation. If a webhook misfires, you can use the stored attendance data to manually trigger a catch-up batch issuance via the API or the IssueBadge.com dashboard bulk upload feature.
- Communicate the badge program to attendees upfront. Mention badge issuing in your webinar registration confirmation and pre-event reminder emails. Attendees who know a badge is coming are more likely to stay for the full session, which benefits both your completion metrics and your badge program's reputation.