Show summary
Purpose
Show how to build webinar integrations that handle registration, attendance-state tagging, and follow-up segmentation in KlickTipp.
Required Endpoints
POST /subscriber/signin.jsonPOST /subscriber.jsonGET /list.jsonPOST /subscriber/tag.jsonPOST /subscriber/untag.json
Decision Rules
- Use the Listbuilding API only for very simple fixed registration flows with one predefined tag path.
- Use the Management API when webinar registration or attendance events must update tags dynamically.
Failure Handling
- Validate registration payloads and webinar field formats before creating or updating contacts.
- Handle duplicate or delayed webinar events idempotently so repeated deliveries do not corrupt tag state.
Known Limits
- Webinar platforms can send events late, out of order, or more than once.
- Dynamic webinar tagging requires the Management API, not only Listbuilding.
Related Docs
This guide is for developers who want to connect webinar tools with KlickTipp.
These integrations usually have the same business goal: register contacts, store webinar metadata, track attendance and replay behavior, assign the correct tags, and trigger follow-up campaigns without corrupting state when events arrive late or more than once.
Use the Listbuilding API only for a very simple registration flow with one fixed tag path and no later attendance-state updates.
Use the Management API for most webinar integrations because registration, attendance, replay, no-show, and buyer events all require dynamic contact updates and tag changes.
| Action | Description |
|---|---|
| Listbuilding Signin | Subscribes a contact through a fixed Listbuilding API key. Use this only for simple registration flows. |
| Add or Update Contact | Creates the contact if needed and updates it if the email already exists. |
| List Opt-in Processes | Lists the available opt-in processes. |
| List Tags | Lists the available tags. |
| List Data Fields | Lists the available custom data fields. |
| Tag Contact | Applies one or more tags to a contact. |
| Untag Contact | Removes one or more tags from a contact. |
| Create Tag | Creates a manual tag if the integration manages tags programmatically. |
This guide applies to webinar tools in general. It uses the following platforms as implementation examples because current KlickTipp templates already exist for them:
WebinarJamZoomEverWebinar
Most webinar tools can produce the same logical event family:
- registration
- live attendance
- full live attendance
- no-show
- replay attendance
- full replay attendance
- purchase during or after the webinar
- correction events that arrive later than the first attendance result
Before you import templates or activate webhooks, create the required custom fields and tags in KlickTipp.
These fields are useful for all webinar integrations:
- webinar choice or webinar identifier
- webinar start timestamp
- join URL
- registration identifier
- attendance duration or replay duration when the platform provides it
The current templates for the example platforms use fields like these:
| Platform | Typical required fields |
|---|---|
| WebinarJam | Webinarjam_Webinar_selection, Webinarjam_Webinar_Start, Webinarjam_Live_room_URL, Webinarjam_replay_URL |
| Zoom | Zoom_Webinar_selection, Zoom_Webinar_Start, Zoom_Join_URL, Zoom_Registration_ID, Zoom_Duration_webinar |
| EverWebinar | EverWebinar_Webinar_selection, EverWebinar_Webinar_Start, EverWebinar_Live_room_URL, EverWebinar_replay_URL |
When storing these values, make sure the configured field types match the payload values. For field-type details, see Data Field Types and Input Formats.
Use the following model as the default mapping between webinar events and KlickTipp operations.
| Incoming event | KlickTipp action | Required effect |
|---|---|---|
| Registration created | Add or Update Contact + Tag Contact | Create or update the contact, write webinar metadata, assign the registration tag. |
| Registration updated | Add or Update Contact | Update webinar metadata without creating a duplicate contact. |
| Live attended | Tag Contact + optional Untag Contact | Apply the live-attended tag and remove a conflicting no-show tag if it already exists. |
| Fully attended live | Tag Contact | Apply the fully-attended-live tag. Keep the general attended tag if your campaign logic uses both. |
| No-show | Tag Contact + optional Untag Contact | Apply the no-show tag only if no later attendance event has already won. |
| Replay attended | Tag Contact | Apply the replay-attended tag. |
| Fully attended replay | Tag Contact | Apply the fully-attended-replay tag. |
| Purchase during live webinar | Tag Contact | Apply the live-buyer tag. |
| Purchase after replay | Tag Contact | Apply the replay-buyer tag. |
| Late correction event | Add or Update Contact, Tag Contact, Untag Contact | Reconcile the contact to the final correct state. |
Use stable, explicit tags that make the contact state readable to support, campaign, and automation teams.
Recommended logical states:
[Tool] [Webinar] Registered[Tool] [Webinar] Attended Live[Tool] [Webinar] Fully Attended Live[Tool] [Webinar] Did Not Attend Live[Tool] [Webinar] Attended Replay[Tool] [Webinar] Fully Attended Replay[Tool] [Webinar] Purchased Live[Tool] [Webinar] Purchased Replay
Template sets often use webinar-specific names such as Beginners and Experts. Keep those names if the webinar platform routes to different webinar IDs or different campaigns.
The integration should treat attendance and purchase updates as state transitions, not as isolated one-off tags.
RegisteredAttended LiveorDid Not Attend Live- optional
Fully Attended Live - optional
Attended Replayif the contact missed or partially watched the live webinar - optional
Fully Attended Replay - optional
Purchased LiveorPurchased Replay
Fully Attended LiveimpliesAttended Live.Fully Attended ReplayimpliesAttended Replay.Purchased LiveandPurchased Replayare commercial states, not attendance replacements.Did Not Attend Liveconflicts withAttended LiveandFully Attended Live.- Replay participation does not erase a previous live-attendance state.
- A replay purchase does not erase a live purchase unless your business model explicitly requires a single buyer tag.
Use these default rules when events disagree:
| Conflict | Recommended resolution |
|---|---|
Did Not Attend Live arrives before Attended Live | Let Attended Live win and remove the no-show tag. |
Attended Live arrives before Did Not Attend Live | Ignore the later no-show as stale. |
Attended Live arrives before Fully Attended Live | Keep both tags if campaigns use both, or keep only the stronger one if your tag model is mutually exclusive. |
| Replay attendance arrives after a live no-show | Keep the no-show-live tag and add replay attendance tags. |
| Purchase arrives before attendance data | Keep the purchase tag and wait for attendance reconciliation. |
| Platform reports inconsistent durations | Send the case to manual review if the final state cannot be trusted. |
Webinar platforms can deliver events out of order. Your integration must therefore separate event arrival order from business truth.
Process events like this:
- Identify the contact by email address.
- Identify the webinar instance by webinar ID, meeting ID, or another stable webinar key.
- Compare the incoming event with the current stored state for that contact and webinar.
- Apply only the state transition that makes the contact more correct, not merely newer by arrival time.
- Remove obsolete conflicting tags when the new event is authoritative.
Examples:
- A contact may first receive
Did Not Attend Livebecause the attendance job ran before delayed attendance data was available. - A contact may later receive
Attended Liveafter the platform finishes processing attendance. - A buyer event can arrive before or after attendance data.
The integration should treat these as normal correction flows, not as fatal errors.
For webinar integrations, the email address is the primary contact identifier. The webinar identifier and event type form the business key for processing.
Recommended idempotency rules:
- Repeated Add or Update Contact calls with the same email must update the existing contact.
- Repeated Tag Contact calls for the same tag should be safe.
- Repeated Untag Contact calls for a tag that is already absent should be safe.
- Store a processed-event key such as
platform + webinar_id + contact_email + event_type + source_event_idwhen the platform provides a stable event ID. - If the platform does not provide a stable event ID, derive a deterministic key from the event payload and processing window.
Do not assume that duplicate delivery means duplicate intent. Registration, attendance, replay, and purchase events are often retried by the source platform or the iPaaS template.
Retries should happen only for technical failures, not for business-rule conflicts.
Retry these cases:
- transient network failures
- webhook timeout between the platform and your middleware
- temporary API unavailability
- rate limiting
Do not blindly retry these cases:
- missing required email address
- unknown webinar mapping
- invalid field type for a custom field
- contradictory attendance data without a clear winning rule
Recommended retry model:
- Validate the payload before calling KlickTipp.
- Retry transient failures with backoff.
- Stop automatic retries after a bounded number of attempts.
- Move unresolved cases to manual review with the raw event payload and the current tag state.
Some cases should not be auto-resolved:
- the contact email is missing or invalid
- the webinar choice does not map to a known webinar ID
- the same contact appears under conflicting emails
- a no-show and a full-attendance result both arrive with equally strong evidence
- duration data is missing but the template logic depends on duration thresholds
- a buyer event cannot be tied safely to a live or replay session
Mark these contacts for manual review instead of guessing.
- Create the required data fields and tags in KlickTipp.
- Create or identify the webinar landing page or form in KlickTipp.
- Configure the outbound webhook or iPaaS trigger.
- Load setup data with List Opt-in Processes, List Tags, and List Data Fields.
- Receive the registration event.
- Validate email, webinar mapping, and required field values.
- Create or update the contact with Add or Update Contact.
- Apply the registration tag with Tag Contact.
- Persist the mapping between contact, webinar, and source-platform registration ID.
- Receive later attendance, replay, or purchase events.
- Reconcile the state using the tag state machine.
- Add the correct tags and remove obsolete conflicting tags.
- Retry technical failures with backoff.
- Route unresolved conflicts to manual review.
The current template family for WebinarJam uses separate flows for:
- registration import
- live-attendance tagging
- replay-attendance tagging
- purchaser tagging
Typical data written back to KlickTipp:
- webinar selection
- webinar start
- live-room URL
- replay URL
Typical logic:
- route by webinar type such as
BeginnersandExperts - tag live attendance
- tag replay attendance
- tag buyers differently depending on whether the purchase happened live or after replay
The current template family for Zoom uses separate flows for:
- registration
- webinar attendance tagging
- meeting attendance tagging
Typical data written back to KlickTipp:
- webinar selection
- webinar start
- join URL
- registration ID
- duration
Typical logic:
- route by webinar or meeting topic
- calculate participation from attendance duration
- assign separate tags for attended, fully attended, and not attended
The current template family for EverWebinar uses separate flows for:
- registration
- live-attendance tagging
- replay-attendance tagging
- purchaser tagging
Typical data written back to KlickTipp:
- webinar selection
- webinar start
- live-room URL
- replay URL
Typical logic:
- route by webinar type
- distinguish live attendance from replay attendance
- distinguish live purchase from replay purchase
- apply a stronger full-attendance tag when the platform-specific attendance threshold is met
- A contact submits a KlickTipp landing page form for
Zoom Beginners. - The integration registers the contact in Zoom.
- The integration writes
Zoom_Webinar_selection,Zoom_Webinar_Start,Zoom_Join_URL, andZoom_Registration_ID. - The integration tags the contact with
Zoom Beginners Registered. - After the webinar ends, the attendance workflow checks the participant duration.
- The integration tags
Zoom Beginners Attended Live. - If the full-attendance threshold is met, the integration also tags
Zoom Beginners Fully Attended Live. - If
Did Not Attend Livewas set earlier by a stale event, remove it.
- A contact registers for an
EverWebinarsession. - The first attendance reconciliation marks the contact as
Did Not Attend Live. - The contact later watches the replay.
- The replay workflow tags
Attended Replay. - If the replay threshold is met, tag
Fully Attended Replay. - Keep the no-show-live tag because it still correctly describes the live session.
- A
WebinarJamattendance job runs too early and setsDid Not Attend Live. - A later platform event includes valid live-attendance time stamps.
- The integration recognizes that live attendance is the stronger state.
- The integration adds
Attended Live. - The integration removes
Did Not Attend Live. - If the duration threshold is met, add
Fully Attended Live.
- A contact registers for a webinar.
- A buyer event arrives before the attendance reconciliation job finishes.
- The integration tags
Purchased LiveorPurchased Replayif the source event makes that clear. - The attendance state is updated later when the attendance data arrives.
- Purchase tags remain in place because they represent a separate business outcome.
- Use the Management API for event-based webinar flows.
- Keep the contact identity stable by email address.
- Keep webinar identity stable by webinar ID, meeting ID, or another deterministic webinar key.
- Separate attendance state tags from purchase state tags.
- Treat delayed correction events as normal.
- Make retries technical, not semantic.
- Use manual review when business truth cannot be derived safely.
Reliable webinar integrations need more than contact creation.
Whether the source platform is WebinarJam, Zoom, EverWebinar, or another webinar tool, the integration should map registration, attendance, replay, and purchase events to deterministic KlickTipp updates, apply a clear tag state machine, resolve out-of-order events safely, retry technical failures carefully, and preserve enough webinar metadata to drive reminders and follow-up campaigns correctly.