Reference · Tools

GoToWebinar

Manage webinars, registrants, attendees, co-organizers, panelists, and sessions via the GoToWebinar API

Action Communication v1

The GoToWebinar node lets you create and manage webinars, add registrants, retrieve attendee records, and control panelists and co-organizers — all through the GoToWebinar REST API v2. You could, for example, automatically register leads from a form submission and later pull attendee details into a CRM. It covers the full webinar lifecycle from scheduling through post-session reporting.

Node type
Action
Parameters
53
Outputs
Output, Error
Credentials
GoToWebinar OAuth2

GoToWebinar

Manage webinars, registrants, attendees, sessions, panelists, and co-organizers in GoToWebinar.

Overview

GoToWebinar integration that supports managing webinars (create, get, update, list), registrants (create, delete, get, list), attendees (get, list, get details), co-organizers (create, delete, list, reinvite), panelists (create, delete, list, reinvite), and sessions (get, list, get details) via the GoToWebinar REST API v2.

Category: Communication
Tool Name: go_to_webinar
Version: 1

Appearance: Icon: lucide-Video | Color: #F57C20

Node Type

Action — processes input items and produces output

Input / Output

DirectionPort(s)
InputInput
OutputOutput, Error

Credentials

This tool requires GoToWebinar OAuth2 credentials. See the Credentials Guide for setup instructions.

Resources

ResourceValue
Attendeeattendee
Co-Organizercoorganizer
Panelistpanelist
Registrantregistrant
Sessionsession
Webinarwebinar

Operations

OperationValueDescription
GetgetGet one attendee of a session (Attendee resource)
Get ManygetAllList the attendees of a session (Attendee resource)
Get DetailsgetDetailsGet an attendee’s polls, questions or survey answers (Attendee resource)
CreatecreateAdd a co-organizer to a webinar (Co-Organizer resource)
DeletedeleteRemove a co-organizer from a webinar (Co-Organizer resource)
Get ManygetAllList a webinar’s co-organizers (Co-Organizer resource)
ReinvitereinviteResend the invitation to a co-organizer (Co-Organizer resource)
CreatecreateAdd a panelist to a webinar (Panelist resource)
DeletedeleteRemove a panelist from a webinar (Panelist resource)
Get ManygetAllList a webinar’s panelists (Panelist resource)
ReinvitereinviteResend the invitation to a panelist (Panelist resource)
CreatecreateRegister someone for a webinar (Registrant resource)
DeletedeleteRemove a registrant from a webinar (Registrant resource)
GetgetGet one registrant (Registrant resource)
Get ManygetAllList a webinar’s registrants (Registrant resource)
GetgetGet one session (Session resource)
Get ManygetAllList sessions across a date range (Session resource)
Get DetailsgetDetailsGet a session’s performance, polls, questions or surveys (Session resource)
CreatecreateCreate a webinar (Webinar resource)
DeletedeleteCancel a webinar (Webinar resource)
GetgetGet one webinar (Webinar resource)
Get ManygetAllList webinars across a date range (Webinar resource)
UpdateupdateUpdate a webinar (Webinar resource)

Parameters

Attendee: Get

ParameterTypeRequiredDefaultDescription
Webinar KeystringYesKey of the webinar. Find in GoToWebinar dashboard or via the webinar:getAll operation. Supports expressions like {{ $json.webinarKey }}.
Session KeystringYesKey of the webinar session. Find via session:getAll operation. Supports expressions.
Registrant KeystringYesRegistrant key of the attendee at the webinar session. Supports expressions.

Attendee: Get Many

ParameterTypeRequiredDefaultDescription
Webinar KeystringYesKey of the webinar. Find in GoToWebinar dashboard or via the webinar:getAll operation. Supports expressions.
Session KeystringYesKey of the webinar session. Find via session:getAll operation. Supports expressions.
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo10Max number of results to return. (shown when Return All is false)

Attendee: Get Details

ParameterTypeRequiredDefaultDescription
Webinar KeystringYesKey of the webinar. Supports expressions.
Session KeystringYesKey of the webinar session. Supports expressions.
Registrant KeystringYesRegistrant key of the attendee at the webinar session. Supports expressions.
DetailsoptionsYespollsThe details to retrieve for the attendee.
Options: polls, questions, surveyAnswers

Co-Organizer: Create

ParameterTypeRequiredDefaultDescription
Webinar KeystringYesKey of the webinar. Supports expressions.
Is ExternalbooleanYesfalseWhether the co-organizer has no GoToWebinar account.
Organizer Key (coorgOrganizerKey)stringNoThe co-organizer’s organizer key for the webinar (internal co-organizer). (shown when Is External is false)
Given NamestringNoThe co-organizer’s given name (external co-organizer). (shown when Is External is true)
EmailstringNoThe co-organizer’s email address (external co-organizer). (shown when Is External is true)

Co-Organizer: Delete

ParameterTypeRequiredDefaultDescription
Webinar KeystringYesKey of the webinar. Supports expressions.
Is ExternalbooleanYesfalseWhether the co-organizer has no GoToWebinar account.
Co-Organizer Key (coorganizerKey)stringNoKey of the co-organizer. Supports expressions.

Co-Organizer: Get Many

ParameterTypeRequiredDefaultDescription
Webinar KeystringYesKey of the webinar. Supports expressions.
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo10Max number of results to return. (shown when Return All is false)

Co-Organizer: Reinvite

ParameterTypeRequiredDefaultDescription
Webinar KeystringYesKey of the webinar. Supports expressions.
Is ExternalbooleanYesfalseWhether the co-organizer has no GoToWebinar account.
Co-Organizer Key (coorganizerKey)stringNoKey of the co-organizer. Supports expressions.

Panelist: Create

ParameterTypeRequiredDefaultDescription
Webinar KeystringYesKey of the webinar for the panelist. Supports expressions.
NamestringYesName of the panelist to create. Supports expressions.
EmailstringYesEmail address of the panelist to create. Supports expressions.

Panelist: Delete

ParameterTypeRequiredDefaultDescription
Webinar KeystringYesKey of the webinar for the panelist. Supports expressions.
Panelist KeystringYesKey of the panelist. Supports expressions.

Panelist: Get Many

ParameterTypeRequiredDefaultDescription
Webinar KeystringYesKey of the webinar for the panelist. Supports expressions.
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo10Max number of results to return. (shown when Return All is false)

Panelist: Reinvite

ParameterTypeRequiredDefaultDescription
Webinar KeystringYesKey of the webinar for the panelist. Supports expressions.
Panelist KeystringYesKey of the panelist. Supports expressions.

Registrant: Create

ParameterTypeRequiredDefaultDescription
Webinar KeystringYesKey of the webinar. Supports expressions.
First NamestringNoFirst name of the registrant to create. Supports expressions.
Last NamestringNoLast name of the registrant to create. Supports expressions.
EmailstringNoEmail address of the registrant to create. Supports expressions.
Additional FieldscollectionNo{}Optional registration details. Add only the ones you need.
— AddressstringNoStreet address of the registrant.
— CitystringNoCity of the registrant.
— StatestringNoState or region of the registrant.
— Zip Code (zipCode)stringNoPostal code of the registrant.
— CountrystringNoCountry of the registrant.
— IndustrystringNoThe type of industry the registrant’s organization belongs to.
— Job Title (jobTitle)stringNoJob title of the registrant.
— Number of Employees (numberOfEmployees)stringNoThe size in employees of the registrant’s organization.
— OrganizationstringNoThe registrant’s organization.
— Telephone (phone)stringNoTelephone number of the registrant.
— Purchasing Role (purchasingRole)stringNoRegistrant’s role in purchasing the product.
— Purchasing Time Frame (purchasingTimeFrame)stringNoTime frame within which the product will be purchased.
— Questions and Comments (questionsAndComments)stringNoQuestions or comments made by the registrant during registration.
— Resend Confirmation (resendConfirmation)booleanNofalseWhether to resend the confirmation email.
— Simple Responses (JSON) (simpleResponses)jsonNo[]Array of objects with questionKey and responseText fields. Example: [{“questionKey”:“q1”,“responseText”:“My answer”}]
— Multi-Choice Responses (JSON) (multiChoiceResponses)jsonNo[]Array of objects with questionKey and answerKey fields. Example: [{“questionKey”:“q1”,“answerKey”:“a1”}]
— SourcestringNoThe source that led to the registration.

Registrant: Get

ParameterTypeRequiredDefaultDescription
Webinar KeystringYesKey of the webinar. Supports expressions.
Registrant KeystringYesKey of the registrant. Supports expressions.

Registrant: Get Many

ParameterTypeRequiredDefaultDescription
Webinar KeystringYesKey of the webinar. Supports expressions.
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo10Max number of results to return. (shown when Return All is false)

Registrant: Delete

ParameterTypeRequiredDefaultDescription
Webinar KeystringYesKey of the webinar. Supports expressions.
Registrant KeystringYesKey of the registrant. Supports expressions.

Session: Get

ParameterTypeRequiredDefaultDescription
Webinar KeystringYesKey of the webinar to which the session belongs. Supports expressions.
Session KeystringYesKey of the session. Supports expressions.

Session: Get Many

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo10Max number of results to return. (shown when Return All is false)
Additional FieldscollectionNo{}Optional date-range and webinar filters.
— From Time (fromTime)stringNoStart of the datetime range (ISO 8601). If empty, defaults to one year ago.
— To Time (toTime)stringNoEnd of the datetime range (ISO 8601). If empty, defaults to now.
— Webinar Key (webinarKey)stringNoWebinar key to filter sessions. If empty, returns sessions for all webinars.

Session: Get Details

ParameterTypeRequiredDefaultDescription
Webinar KeystringYesKey of the webinar to which the session belongs. Supports expressions.
Session KeystringYesKey of the session. Supports expressions.
DetailsoptionsNoperformanceThe details to retrieve for the session.
Options: performance, polls, questions, surveys

Webinar: Create

ParameterTypeRequiredDefaultDescription
SubjectstringYesName or topic of the webinar. Supports expressions.
Times (JSON) (times)jsonYes[{"startTime":"2025-01-01T09:00:00Z","endTime":"2025-01-01T10:00:00Z"}]Array of time objects with startTime and endTime in ISO 8601 format. Example: [{“startTime”:“2025-06-01T14:00:00Z”,“endTime”:“2025-06-01T15:00:00Z”}]
Additional FieldscollectionNo{}Optional webinar settings. Add only the ones you need.
— DescriptionstringNoDescription shown on the registration page.
— Experience Type (experienceType)optionsNoCLASSICThe webinar experience to run.
Options: CLASSIC, BROADCAST, SIMULIVE
— Is On-Demand (isOnDemand)booleanNofalseWhether the webinar may be watched anytime.
— Is Password Protected (isPasswordProtected)booleanNofalseWhether the webinar requires a password for attendees to join.
— TimezonestringNoIANA timezone identifier (e.g. “America/New_York”, “Europe/London”).
— Webinar Type (type)optionsNosingle_sessionHow many times the webinar runs.
Options: single_session, series, sequence

Webinar: Get

ParameterTypeRequiredDefaultDescription
Webinar KeystringYesKey of the webinar. Supports expressions.

Webinar: Get Many

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo10Max number of results to return. (shown when Return All is false)
Additional FieldscollectionNo{}Optional date-range filter.
— From Time (fromTime)stringNoStart of the datetime range (ISO 8601). If empty, defaults to one year ago.
— To Time (toTime)stringNoEnd of the datetime range (ISO 8601). If empty, defaults to now.

Webinar: Update

ParameterTypeRequiredDefaultDescription
Webinar KeystringYesKey of the webinar. Supports expressions.
Notify Participants (notifyParticipants)booleanYesfalseWhether to notify participants about the update.
Update FieldscollectionNo{}Fields to change on the webinar. Add only the ones you need.
— DescriptionstringNoDescription shown on the registration page.
— Experience Type (experienceType)optionsNoCLASSICThe webinar experience to run.
Options: CLASSIC, BROADCAST, SIMULIVE
— Is On-Demand (isOnDemand)booleanNofalseWhether the webinar may be watched anytime.
— Is Password Protected (isPasswordProtected)booleanNofalseWhether the webinar requires a password for attendees to join.
— SubjectstringNoName or topic of the webinar.
— Times (JSON) (times)jsonNo[]Array of time objects with startTime and endTime in ISO 8601 format.
— TimezonestringNoIANA timezone identifier.
— Webinar Type (type)optionsNosingle_sessionHow many times the webinar runs.
Options: single_session, series, sequence

Webinar: Delete

ParameterTypeRequiredDefaultDescription
Webinar KeystringYesKey of the webinar. Supports expressions.
Additional FieldscollectionNo{}Optional cancellation settings.
— Send Cancellation Emails (sendCancellationEmails)booleanNofalseWhether to send cancellation emails to registrants.

All Operations

ParameterTypeRequiredDefaultDescription
GoToWebinar Account (credentialId)credentialNoConnect your GoToWebinar account via OAuth2.
Max ConcurrencynumberNo10Maximum number of items to process concurrently.

Output Data

The GoToWebinar response is merged into the incoming item JSON at the top level, so the fields you sent in pass through and binary data is forwarded.

OperationOutput items
attendee / getAll, coorganizer / getAll, panelist / getAll, registrant / getAll, session / getAll, webinar / getAllFans out — one output item per record. Return All pages through the whole result set; otherwise up to Limit records.
attendee / get, getDetailsOne item — the attendee record, or the polls, questions or survey answers you asked for. A details call that returns a list fans out one item per entry.
session / get, getDetailsOne item — the session record or the requested detail set, fanning out when the API returns a list.
registrant / create, getOne item — the registrant record, including the registration key and join URL GoToWebinar assigns.
webinar / create, getOne item — the webinar record, including the webinar key GoToWebinar assigns.
coorganizer / create, panelist / createOne item — the created record.
coorganizer / delete, reinvite, panelist / delete, reinvite, registrant / delete, webinar / delete, updateOne item carrying success: true — these calls return no body.

Usage Examples

  • List all upcoming webinars
  • Create a new webinar with a specific subject and time
  • Get all registrants for a webinar
  • Add a panelist to a webinar
  • Get session performance details

Example Configuration

Create a webinar:

{
  "type": "go_to_webinar",
  "parameters": {
    "resource": "webinar",
    "operation": "create",
    "subject": "Monthly Product Update",
    "times": "[{\"startTime\":\"2024-06-01T14:00:00Z\",\"endTime\":\"2024-06-01T15:00:00Z\"}]",
    "additionalFields": {
      "description": "Learn about our latest features",
      "experienceType": "CLASSIC",
      "isOnDemand": false,
      "timezone": "America/New_York",
      "type": "single_session"
    }
  }
}

Register someone for a webinar:

{
  "type": "go_to_webinar",
  "parameters": {
    "resource": "registrant",
    "operation": "create",
    "webinarKey": "{{ $json.webinarKey }}",
    "firstName": "Alice",
    "lastName": "Johnson",
    "email": "alice@example.com",
    "additionalFields": {
      "organization": "Tech Corp",
      "jobTitle": "Developer",
      "phone": "555-1234",
      "industry": "Technology"
    }
  }
}

List the attendees of a session:

{
  "type": "go_to_webinar",
  "parameters": {
    "resource": "attendee",
    "operation": "getAll",
    "webinarKey": "123456789",
    "sessionKey": "987654321",
    "returnAll": false,
    "limit": 50
  }
}

Get an attendee’s poll answers:

{
  "type": "go_to_webinar",
  "parameters": {
    "resource": "attendee",
    "operation": "getDetails",
    "webinarKey": "123456789",
    "sessionKey": "987654321",
    "registrantKey": "reg123",
    "details": "polls"
  }
}

Add an external co-organizer:

{
  "type": "go_to_webinar",
  "parameters": {
    "resource": "coorganizer",
    "operation": "create",
    "webinarKey": "123456789",
    "isExternal": true,
    "givenName": "John",
    "email": "john@example.com"
  }
}

Add a panelist:

{
  "type": "go_to_webinar",
  "parameters": {
    "resource": "panelist",
    "operation": "create",
    "webinarKey": "123456789",
    "name": "Jane Smith",
    "email": "jane@example.com"
  }
}

List sessions in a date range:

{
  "type": "go_to_webinar",
  "parameters": {
    "resource": "session",
    "operation": "getAll",
    "returnAll": true,
    "additionalFields": {
      "fromTime": "2024-01-01T00:00:00Z",
      "toTime": "2024-12-31T23:59:59Z",
      "webinarKey": "123456789"
    }
  }
}

Error Handling

ModeBehavior
stopHalts workflow on first error
continueSkips failed items, passes successful ones through
errorPortRoutes failed items to Error output port

Tips

Manage webinars, registrants, attendees, sessions, panelists, and co-organizers in GoToWebinar.

Notes

  • Everything hangs off a webinar key. Get it from Webinar: Get Many, or from the record a Webinar: Create returns, then feed it into the registrant, panelist, co-organizer, session and attendee operations.
  • Attendees are per session, not per webinar. You need both a Webinar Key and a Session Key; list sessions first with Session: Get Many.
  • Co-organizers split on Is External. Internal ones are identified by an Organizer Key from your GoToWebinar account; external ones need a Given Name and Email instead.
  • Times is a JSON array, not a single date. Even a one-off webinar takes one { "startTime": …, "endTime": … } entry, and a series or sequence takes one per occurrence.
  • Date ranges default when left empty. From Time falls back to one year ago and To Time to now, so an unfiltered list covers the last twelve months.

Frequently asked questions

What credential do I need to connect this node to GoToWebinar?

You need a GoToWebinar OAuth2 credential (called goToWebinarOAuth2 in BusyBot). This means you authenticate through GoToWebinar's OAuth2 flow rather than an API key. Set up the credential once in BusyBot and all GoToWebinar nodes in your account can reuse it.

How do I get the Webinar Key my other operations depend on?

Almost every operation — registrants, panelists, co-organizers, sessions — requires a Webinar Key as a starting point. You can get one either by running a Webinar: Create action (the returned record includes it) or by using Webinar: Get Many to list existing webinars and extract the key from there. Feed that value into downstream nodes.

How do I get attendee data? I can't see an 'Attendee: Get Many by Webinar' option.

Attendees in GoToWebinar are scoped to individual sessions, not to the webinar as a whole. To retrieve them you need both a Webinar Key and a Session Key. First run Session: Get Many to list sessions for a given webinar, grab a Session Key from those results, then pass both keys into the Attendee operations.

What format does the Times field expect when creating or updating a webinar?

Times is a JSON array, even for a single-session webinar. A one-off event needs one object in the array with startTime and endTime fields. A recurring series or sequence takes one object per occurrence. Passing a plain date string instead of an array will cause the request to fail.

When adding a co-organizer, what's the difference between internal and external?

The node splits co-organizers on an 'Is External' flag. Internal co-organizers are people already in your GoToWebinar account and are identified by their Organizer Key. External co-organizers are outside your account and require a Given Name and Email address instead. Make sure you set this flag correctly, otherwise the required fields will differ and the request will error.

Build with the GoToWebinar node

Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need GoToWebinar OAuth2 credentials first.

Open BusyBot

Last updated . Spotted something wrong? Tell us.