WP-GTW Integration
WordPress plugin - GoToWebinar integration replacing Zapier. Auto-detects upcoming sessions, WPForms trigger, admin alerts.
by Kivi Media · github.com/kivimedia/wp-gtw-integration · website
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/kivimedia/wp-gtw-integration/archive/refs/heads/main.zipWordPress plugin that replaces Zapier for GoToWebinar registration. Auto-detects the next upcoming session, registers form submitters via WPForms, and alerts the admin when something goes wrong.
The Problem
GoToWebinar recurring webinars share a name across all sessions. You can't rename individual sessions. So the only way to register someone is by session ID - which changes every week. Zapier requires manually updating this ID after each session. Forget once, and registrations silently fail.
What This Plugin Does
- Auto-detects the next upcoming session by querying the GoToWebinar API
- Auto-switches to the new session the moment the current one ends
- Fires on WPForms submission (no Zapier, no external tools)
- Caches the session ID to minimize API calls (configurable TTL)
- Retries failed registrations via WP-Cron
- Emails the admin when something fails
- Logs all registration attempts in WP Admin
Requirements
- WordPress 6.0+
- PHP 8.0+
- WPForms (free or pro)
- GoToWebinar account with API access (REST API v2)
Installation
- Download the latest release zip
- WP Admin > Plugins > Add New > Upload Plugin
- Activate
- Go to Settings > GTW Integration
Setup (under 30 minutes)
- Get GoToWebinar API credentials: Log into GoTo Developer Center, create an OAuth app, get Client ID and Client Secret
- Enter credentials: Settings > GTW Integration > API Credentials > Save > Test Connection
- Enter webinar key: The series key from your recurring webinar URL
- Map form fields: Select your WPForms form, enter the field IDs for First Name, Last Name, Email, Phone, Organization
- Save and you're done
Architecture
wp-gtw-integration/
wp-gtw-integration.php Main plugin file, hooks, WP-Cron
includes/
class-gtw-api.php GoToWebinar API wrapper (OAuth, registration)
class-gtw-session-resolver.php Auto-detection, caching, auto-switch
class-gtw-wpforms-handler.php WPForms hook, field mapping
class-gtw-logger.php Activity log, email alerts
admin/
settings-page.php Settings UI (credentials, webinar, mapping)
log-page.php Activity log viewer
How Auto-Switch Works
- Registration fires via WPForms
- Plugin checks cached session - is the end time still in the future?
- If yes, use the cached session
- If no (session ended), clear cache, query API for next session
- Cache the new session for 15 minutes (configurable)
- If no future session exists, queue for retry and email admin
Multi-Series (v2 Ready)
The database schema supports multiple webinar series from day one. V1 UI manages one series. V2 will expose multi-series management.
License
GPL-2.0-or-later