<!-- BusyBot node reference — https://busybot.net/tools/go-to-webinar/ -->

> Node: GoToWebinar (`go_to_webinar`) · Action · v1
> Category: Communication · Credentials: GoToWebinar OAuth2 (`goToWebinarOAuth2`)
> Updated: 2026-08-16

# 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

| Direction | Port(s) |
|-----------|--------|
| Input | `Input` |
| Output | `Output`, `Error` |

## Credentials

This tool requires **GoToWebinar OAuth2** credentials.
See the [Credentials Guide](https://busybot.net/credentials/go-to-webinar-oauth2/) for setup instructions.

### Resources

| Resource | Value |
|----------|-------|
| Attendee | `attendee` |
| Co-Organizer | `coorganizer` |
| Panelist | `panelist` |
| Registrant | `registrant` |
| Session | `session` |
| Webinar | `webinar` |

### Operations

| Operation | Value | Description |
|-----------|-------|-------------|
| Get | `get` | Get one attendee of a session (Attendee resource) |
| Get Many | `getAll` | List the attendees of a session (Attendee resource) |
| Get Details | `getDetails` | Get an attendee's polls, questions or survey answers (Attendee resource) |
| Create | `create` | Add a co-organizer to a webinar (Co-Organizer resource) |
| Delete | `delete` | Remove a co-organizer from a webinar (Co-Organizer resource) |
| Get Many | `getAll` | List a webinar's co-organizers (Co-Organizer resource) |
| Reinvite | `reinvite` | Resend the invitation to a co-organizer (Co-Organizer resource) |
| Create | `create` | Add a panelist to a webinar (Panelist resource) |
| Delete | `delete` | Remove a panelist from a webinar (Panelist resource) |
| Get Many | `getAll` | List a webinar's panelists (Panelist resource) |
| Reinvite | `reinvite` | Resend the invitation to a panelist (Panelist resource) |
| Create | `create` | Register someone for a webinar (Registrant resource) |
| Delete | `delete` | Remove a registrant from a webinar (Registrant resource) |
| Get | `get` | Get one registrant (Registrant resource) |
| Get Many | `getAll` | List a webinar's registrants (Registrant resource) |
| Get | `get` | Get one session (Session resource) |
| Get Many | `getAll` | List sessions across a date range (Session resource) |
| Get Details | `getDetails` | Get a session's performance, polls, questions or surveys (Session resource) |
| Create | `create` | Create a webinar (Webinar resource) |
| Delete | `delete` | Cancel a webinar (Webinar resource) |
| Get | `get` | Get one webinar (Webinar resource) |
| Get Many | `getAll` | List webinars across a date range (Webinar resource) |
| Update | `update` | Update a webinar (Webinar resource) |

### Parameters

#### Attendee: Get

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Webinar Key | `string` | Yes | — | Key of the webinar. Find in GoToWebinar dashboard or via the webinar:getAll operation. Supports expressions like {{ $json.webinarKey }}. |
| Session Key | `string` | Yes | — | Key of the webinar session. Find via session:getAll operation. Supports expressions. |
| Registrant Key | `string` | Yes | — | Registrant key of the attendee at the webinar session. Supports expressions. |

#### Attendee: Get Many

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Webinar Key | `string` | Yes | — | Key of the webinar. Find in GoToWebinar dashboard or via the webinar:getAll operation. Supports expressions. |
| Session Key | `string` | Yes | — | Key of the webinar session. Find via session:getAll operation. Supports expressions. |
| Return All | `boolean` | No | `false` | Whether to return all results or only up to a given limit. |
| Limit | `number` | No | `10` | Max number of results to return. _(shown when Return All is `false`)_ |

#### Attendee: Get Details

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Webinar Key | `string` | Yes | — | Key of the webinar. Supports expressions. |
| Session Key | `string` | Yes | — | Key of the webinar session. Supports expressions. |
| Registrant Key | `string` | Yes | — | Registrant key of the attendee at the webinar session. Supports expressions. |
| Details | `options` | Yes | `polls` | The details to retrieve for the attendee. |
| | | | | Options: `polls`, `questions`, `surveyAnswers` |

#### Co-Organizer: Create

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Webinar Key | `string` | Yes | — | Key of the webinar. Supports expressions. |
| Is External | `boolean` | Yes | `false` | Whether the co-organizer has no GoToWebinar account. |
| Organizer Key (`coorgOrganizerKey`) | `string` | No | — | The co-organizer's organizer key for the webinar (internal co-organizer). _(shown when Is External is `false`)_ |
| Given Name | `string` | No | — | The co-organizer's given name (external co-organizer). _(shown when Is External is `true`)_ |
| Email | `string` | No | — | The co-organizer's email address (external co-organizer). _(shown when Is External is `true`)_ |

#### Co-Organizer: Delete

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Webinar Key | `string` | Yes | — | Key of the webinar. Supports expressions. |
| Is External | `boolean` | Yes | `false` | Whether the co-organizer has no GoToWebinar account. |
| Co-Organizer Key (`coorganizerKey`) | `string` | No | — | Key of the co-organizer. Supports expressions. |

#### Co-Organizer: Get Many

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Webinar Key | `string` | Yes | — | Key of the webinar. Supports expressions. |
| Return All | `boolean` | No | `false` | Whether to return all results or only up to a given limit. |
| Limit | `number` | No | `10` | Max number of results to return. _(shown when Return All is `false`)_ |

#### Co-Organizer: Reinvite

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Webinar Key | `string` | Yes | — | Key of the webinar. Supports expressions. |
| Is External | `boolean` | Yes | `false` | Whether the co-organizer has no GoToWebinar account. |
| Co-Organizer Key (`coorganizerKey`) | `string` | No | — | Key of the co-organizer. Supports expressions. |

#### Panelist: Create

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Webinar Key | `string` | Yes | — | Key of the webinar for the panelist. Supports expressions. |
| Name | `string` | Yes | — | Name of the panelist to create. Supports expressions. |
| Email | `string` | Yes | — | Email address of the panelist to create. Supports expressions. |

#### Panelist: Delete

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Webinar Key | `string` | Yes | — | Key of the webinar for the panelist. Supports expressions. |
| Panelist Key | `string` | Yes | — | Key of the panelist. Supports expressions. |

#### Panelist: Get Many

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Webinar Key | `string` | Yes | — | Key of the webinar for the panelist. Supports expressions. |
| Return All | `boolean` | No | `false` | Whether to return all results or only up to a given limit. |
| Limit | `number` | No | `10` | Max number of results to return. _(shown when Return All is `false`)_ |

#### Panelist: Reinvite

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Webinar Key | `string` | Yes | — | Key of the webinar for the panelist. Supports expressions. |
| Panelist Key | `string` | Yes | — | Key of the panelist. Supports expressions. |

#### Registrant: Create

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Webinar Key | `string` | Yes | — | Key of the webinar. Supports expressions. |
| First Name | `string` | No | — | First name of the registrant to create. Supports expressions. |
| Last Name | `string` | No | — | Last name of the registrant to create. Supports expressions. |
| Email | `string` | No | — | Email address of the registrant to create. Supports expressions. |
| Additional Fields | `collection` | No | `{}` | Optional registration details. Add only the ones you need. |
| — Address | `string` | No | — | Street address of the registrant. |
| — City | `string` | No | — | City of the registrant. |
| — State | `string` | No | — | State or region of the registrant. |
| — Zip Code (`zipCode`) | `string` | No | — | Postal code of the registrant. |
| — Country | `string` | No | — | Country of the registrant. |
| — Industry | `string` | No | — | The type of industry the registrant's organization belongs to. |
| — Job Title (`jobTitle`) | `string` | No | — | Job title of the registrant. |
| — Number of Employees (`numberOfEmployees`) | `string` | No | — | The size in employees of the registrant's organization. |
| — Organization | `string` | No | — | The registrant's organization. |
| — Telephone (`phone`) | `string` | No | — | Telephone number of the registrant. |
| — Purchasing Role (`purchasingRole`) | `string` | No | — | Registrant's role in purchasing the product. |
| — Purchasing Time Frame (`purchasingTimeFrame`) | `string` | No | — | Time frame within which the product will be purchased. |
| — Questions and Comments (`questionsAndComments`) | `string` | No | — | Questions or comments made by the registrant during registration. |
| — Resend Confirmation (`resendConfirmation`) | `boolean` | No | `false` | Whether to resend the confirmation email. |
| — Simple Responses (JSON) (`simpleResponses`) | `json` | No | `[]` | Array of objects with questionKey and responseText fields. Example: [{"questionKey":"q1","responseText":"My answer"}] |
| — Multi-Choice Responses (JSON) (`multiChoiceResponses`) | `json` | No | `[]` | Array of objects with questionKey and answerKey fields. Example: [{"questionKey":"q1","answerKey":"a1"}] |
| — Source | `string` | No | — | The source that led to the registration. |

#### Registrant: Get

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Webinar Key | `string` | Yes | — | Key of the webinar. Supports expressions. |
| Registrant Key | `string` | Yes | — | Key of the registrant. Supports expressions. |

#### Registrant: Get Many

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Webinar Key | `string` | Yes | — | Key of the webinar. Supports expressions. |
| Return All | `boolean` | No | `false` | Whether to return all results or only up to a given limit. |
| Limit | `number` | No | `10` | Max number of results to return. _(shown when Return All is `false`)_ |

#### Registrant: Delete

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Webinar Key | `string` | Yes | — | Key of the webinar. Supports expressions. |
| Registrant Key | `string` | Yes | — | Key of the registrant. Supports expressions. |

#### Session: Get

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Webinar Key | `string` | Yes | — | Key of the webinar to which the session belongs. Supports expressions. |
| Session Key | `string` | Yes | — | Key of the session. Supports expressions. |

#### Session: Get Many

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Return All | `boolean` | No | `false` | Whether to return all results or only up to a given limit. |
| Limit | `number` | No | `10` | Max number of results to return. _(shown when Return All is `false`)_ |
| Additional Fields | `collection` | No | `{}` | Optional date-range and webinar filters. |
| — From Time (`fromTime`) | `string` | No | — | Start of the datetime range (ISO 8601). If empty, defaults to one year ago. |
| — To Time (`toTime`) | `string` | No | — | End of the datetime range (ISO 8601). If empty, defaults to now. |
| — Webinar Key (`webinarKey`) | `string` | No | — | Webinar key to filter sessions. If empty, returns sessions for all webinars. |

#### Session: Get Details

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Webinar Key | `string` | Yes | — | Key of the webinar to which the session belongs. Supports expressions. |
| Session Key | `string` | Yes | — | Key of the session. Supports expressions. |
| Details | `options` | No | `performance` | The details to retrieve for the session. |
| | | | | Options: `performance`, `polls`, `questions`, `surveys` |

#### Webinar: Create

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Subject | `string` | Yes | — | Name or topic of the webinar. Supports expressions. |
| Times (JSON) (`times`) | `json` | Yes | `[{"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 Fields | `collection` | No | `{}` | Optional webinar settings. Add only the ones you need. |
| — Description | `string` | No | — | Description shown on the registration page. |
| — Experience Type (`experienceType`) | `options` | No | `CLASSIC` | The webinar experience to run. |
| | | | | Options: `CLASSIC`, `BROADCAST`, `SIMULIVE` |
| — Is On-Demand (`isOnDemand`) | `boolean` | No | `false` | Whether the webinar may be watched anytime. |
| — Is Password Protected (`isPasswordProtected`) | `boolean` | No | `false` | Whether the webinar requires a password for attendees to join. |
| — Timezone | `string` | No | — | IANA timezone identifier (e.g. "America/New_York", "Europe/London"). |
| — Webinar Type (`type`) | `options` | No | `single_session` | How many times the webinar runs. |
| | | | | Options: `single_session`, `series`, `sequence` |

#### Webinar: Get

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Webinar Key | `string` | Yes | — | Key of the webinar. Supports expressions. |

#### Webinar: Get Many

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Return All | `boolean` | No | `false` | Whether to return all results or only up to a given limit. |
| Limit | `number` | No | `10` | Max number of results to return. _(shown when Return All is `false`)_ |
| Additional Fields | `collection` | No | `{}` | Optional date-range filter. |
| — From Time (`fromTime`) | `string` | No | — | Start of the datetime range (ISO 8601). If empty, defaults to one year ago. |
| — To Time (`toTime`) | `string` | No | — | End of the datetime range (ISO 8601). If empty, defaults to now. |

#### Webinar: Update

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Webinar Key | `string` | Yes | — | Key of the webinar. Supports expressions. |
| Notify Participants (`notifyParticipants`) | `boolean` | Yes | `false` | Whether to notify participants about the update. |
| Update Fields | `collection` | No | `{}` | Fields to change on the webinar. Add only the ones you need. |
| — Description | `string` | No | — | Description shown on the registration page. |
| — Experience Type (`experienceType`) | `options` | No | `CLASSIC` | The webinar experience to run. |
| | | | | Options: `CLASSIC`, `BROADCAST`, `SIMULIVE` |
| — Is On-Demand (`isOnDemand`) | `boolean` | No | `false` | Whether the webinar may be watched anytime. |
| — Is Password Protected (`isPasswordProtected`) | `boolean` | No | `false` | Whether the webinar requires a password for attendees to join. |
| — Subject | `string` | No | — | Name or topic of the webinar. |
| — Times (JSON) (`times`) | `json` | No | `[]` | Array of time objects with startTime and endTime in ISO 8601 format. |
| — Timezone | `string` | No | — | IANA timezone identifier. |
| — Webinar Type (`type`) | `options` | No | `single_session` | How many times the webinar runs. |
| | | | | Options: `single_session`, `series`, `sequence` |

#### Webinar: Delete

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Webinar Key | `string` | Yes | — | Key of the webinar. Supports expressions. |
| Additional Fields | `collection` | No | `{}` | Optional cancellation settings. |
| — Send Cancellation Emails (`sendCancellationEmails`) | `boolean` | No | `false` | Whether to send cancellation emails to registrants. |

#### All Operations

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| GoToWebinar Account (`credentialId`) | `credential` | No | — | Connect your GoToWebinar account via OAuth2. |
| Max Concurrency | `number` | No | `10` | Maximum 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.

| Operation | Output items |
|-----------|--------------|
| `attendee` / `getAll`, `coorganizer` / `getAll`, `panelist` / `getAll`, `registrant` / `getAll`, `session` / `getAll`, `webinar` / `getAll` | **Fans out** — one output item per record. Return All pages through the whole result set; otherwise up to Limit records. |
| `attendee` / `get`, `getDetails` | One 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`, `getDetails` | One item — the session record or the requested detail set, fanning out when the API returns a list. |
| `registrant` / `create`, `get` | One item — the registrant record, including the registration key and join URL GoToWebinar assigns. |
| `webinar` / `create`, `get` | One item — the webinar record, including the webinar key GoToWebinar assigns. |
| `coorganizer` / `create`, `panelist` / `create` | One item — the created record. |
| `coorganizer` / `delete`, `reinvite`, `panelist` / `delete`, `reinvite`, `registrant` / `delete`, `webinar` / `delete`, `update` | One 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:

```json
{
  "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:

```json
{
  "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:

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

Get an attendee's poll answers:

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

Add an external co-organizer:

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

Add a panelist:

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

List sessions in a date range:

```json
{
  "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

| Mode | Behavior |
|------|----------|
| **stop** | Halts workflow on first error |
| **continue** | Skips failed items, passes successful ones through |
| **errorPort** | Routes 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.