Search all guides

Reference · Tools

GoToWebinar integration

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.

Works as
Action
Tool name
go_to_webinar
Operations
23 — Get , Get Many , Get Details , Create , Delete and 18 more
Parameters
53
Outputs
Output, Error
Credentials
GoToWebinar OAuth2
Official docs
GoToWebinar docs developer.goto.com

What you can build with GoToWebinar

  • 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.

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.

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 KeystringYes—Key of the webinar.
Session KeystringYes—Key of the webinar session.
Registrant KeystringYes—Key of the registrant; the same key identifies the attendee.

Attendee: Get Many

ParameterTypeRequiredDefaultDescription
Webinar KeystringYes—Key of the webinar.
Session KeystringYes—Key of the webinar session.
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 KeystringYes—Key of the webinar.
Session KeystringYes—Key of the webinar session.
Registrant KeystringYes—Key of the registrant; the same key identifies the attendee.
Details (attendeeDetails)optionsYespollsWhich detail set to retrieve for the attendee: polls, questions, or surveyAnswers.
Options: polls, questions, surveyAnswers

Co-Organizer: Create

ParameterTypeRequiredDefaultDescription
Webinar KeystringYes—Key of the webinar.
Is ExternalbooleanYesfalseWhether the co-organizer has no GoToWebinar account.
Organizer KeystringNo—The co-organizer’s organizer key for the webinar (internal co-organizer). (shown when Is External is false)
Given NamestringNo—The co-organizer’s given name (external co-organizer). (shown when Is External is true)
EmailstringNo—Email address of the person to create. (shown when Is External is true)

Co-Organizer: Delete

ParameterTypeRequiredDefaultDescription
Webinar KeystringYes—Key of the webinar.
Is ExternalbooleanYesfalseWhether the co-organizer has no GoToWebinar account.
Co-Organizer KeystringNo—Key of the co-organizer.

Co-Organizer: Get Many

ParameterTypeRequiredDefaultDescription
Webinar KeystringYes—Key of the webinar.
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 KeystringYes—Key of the webinar.
Is ExternalbooleanYesfalseWhether the co-organizer has no GoToWebinar account.
Co-Organizer KeystringNo—Key of the co-organizer.

Panelist: Create

ParameterTypeRequiredDefaultDescription
Webinar KeystringYes—Key of the webinar.
NamestringYes—Name of the panelist to create.
EmailstringYes—Email address of the person to create.

Panelist: Delete

ParameterTypeRequiredDefaultDescription
Webinar KeystringYes—Key of the webinar.
Panelist KeystringYes—Key of the panelist.

Panelist: Get Many

ParameterTypeRequiredDefaultDescription
Webinar KeystringYes—Key of the webinar.
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 KeystringYes—Key of the webinar.
Panelist KeystringYes—Key of the panelist.

Registrant: Create

ParameterTypeRequiredDefaultDescription
Webinar KeystringYes—Key of the webinar.
First NamestringNo—First name of the registrant to create.
Last NamestringNo—Last name of the registrant to create.
EmailstringNo—Email address of the person to create.
Additional FieldscollectionNo{}
Options: CLASSIC, single_session
— AddressstringNo—Street address of the registrant.
— CitystringNo—
— StatestringNo—
— Zip CodestringNo—
— CountrystringNo—
— IndustrystringNo—The type of industry the registrant’s organization belongs to.
— Job TitlestringNo—
— Number of EmployeesstringNo—The size in employees of the registrant’s organization.
— OrganizationstringNo—
— TelephonestringNo—
— Purchasing RolestringNo—Registrant’s role in purchasing the product.
— Purchasing Time FramestringNo—Time frame within which the product will be purchased.
— Questions and CommentsstringNo—Questions or comments made by the registrant during registration.
— Resend ConfirmationbooleanNofalseWhether to resend the confirmation email.
— Simple Responses (JSON)jsonNo[]Array of objects with questionKey and responseText fields. Example: [{“questionKey”:“q1”,“responseText”:“My answer”}]
— Multi-Choice Responses (JSON)jsonNo[]Array of objects with questionKey and answerKey fields. Example: [{“questionKey”:“q1”,“answerKey”:“a1”}]
— SourcestringNo—The source that led to the registration.

Registrant: Delete

ParameterTypeRequiredDefaultDescription
Webinar KeystringYes—Key of the webinar.
Registrant KeystringYes—Key of the registrant; the same key identifies the attendee.

Registrant: Get

ParameterTypeRequiredDefaultDescription
Webinar KeystringYes—Key of the webinar.
Registrant KeystringYes—Key of the registrant; the same key identifies the attendee.

Registrant: Get Many

ParameterTypeRequiredDefaultDescription
Webinar KeystringYes—Key of the webinar.
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)

Session: Get

ParameterTypeRequiredDefaultDescription
Webinar KeystringYes—Key of the webinar.
Session KeystringYes—Key of the webinar session.

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{}
Options: CLASSIC, single_session
— From TimestringNo—Start of the datetime range (ISO 8601). If empty, defaults to one year ago.
— To TimestringNo—End of the datetime range (ISO 8601). If empty, defaults to now.
— Webinar KeystringNo—Webinar key to filter sessions. If empty, returns sessions for all webinars.

Session: Get Details

ParameterTypeRequiredDefaultDescription
Webinar KeystringYes—Key of the webinar.
Session KeystringYes—Key of the webinar session.
Details (sessionDetails)optionsNoperformanceWhich detail set to retrieve for the session: performance, polls, questions, or surveys.
Options: performance, polls, questions, surveys

Webinar: Create

ParameterTypeRequiredDefaultDescription
SubjectstringYes—Name or topic of the webinar.
Times (JSON)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{}
Options: CLASSIC, single_session
— DescriptionstringNo—
— Experience TypeoptionsNoCLASSIC
Options: CLASSIC, BROADCAST, SIMULIVE
— Is On-DemandbooleanNofalse
— Is Password ProtectedbooleanNofalse
— TimezonestringNo—IANA timezone identifier (e.g. “America/New_York”, “Europe/London”).
— Webinar TypeoptionsNosingle_session
Options: single_session, series, sequence

Webinar: Delete

ParameterTypeRequiredDefaultDescription
Webinar KeystringYes—Key of the webinar.
Additional FieldscollectionNo{}
Options: CLASSIC, single_session
— Send Cancellation EmailsbooleanNofalseWhether to send cancellation emails to registrants.

Webinar: Get

ParameterTypeRequiredDefaultDescription
Webinar KeystringYes—Key of the webinar.

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{}
Options: CLASSIC, single_session
— From TimestringNo—Start of the datetime range (ISO 8601). If empty, defaults to one year ago.
— To TimestringNo—End of the datetime range (ISO 8601). If empty, defaults to now.

Webinar: Update

ParameterTypeRequiredDefaultDescription
Webinar KeystringYes—Key of the webinar.
Notify ParticipantsbooleanYesfalseWhether to notify participants about the update.
Update FieldscollectionNo{}
Options: CLASSIC, single_session
— DescriptionstringNo—
— Experience TypeoptionsNoCLASSIC
Options: CLASSIC, BROADCAST, SIMULIVE
— Is On-DemandbooleanNofalseWhether the webinar may be watched anytime.
— Is Password ProtectedbooleanNofalseWhether the webinar requires a password for attendees to join.
— SubjectstringNo—Name or topic of the webinar.
— Times (JSON)jsonNo[]Array of time objects with startTime and endTime in ISO 8601 format.
— TimezonestringNo—IANA timezone identifier.
— Webinar TypeoptionsNosingle_session
Options: single_session, series, sequence

All Operations

ParameterTypeRequiredDefaultDescription
GoToWebinar AccountcredentialNo—Connect 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.

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

This tool manages GoToWebinar webinars, registrants, attendees, co-organizers, panelists, and sessions. It is ideal for creating, updating, or reading webinars, and for managing registrants, co-organizers, and panelists, as well as reading attendee and session information. It produces GoToWebinar resources like webinar details, registrant lists, or co-organizer invitations.

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 GoToWebinar

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 reviewed . Spotted something wrong? Tell us.