KosmoKrator

communication

GoTo Webinar Lua API for KosmoKrator Agents

Agent-facing Lua documentation and function reference for the GoTo Webinar KosmoKrator integration.

7 functions 6 read 1 write Manual OAuth token auth

Lua Namespace

Agents call this integration through app.integrations.goto_webinar.*. Use lua_read_doc("integrations.goto-webinar") inside KosmoKrator to discover the same reference at runtime.

Agent-Facing Lua Docs

This is the rendered version of the full Lua documentation exposed to agents when they inspect the integration namespace.

GoTo Webinar — Lua API Reference

list_webinars

List webinars from GoTo Webinar.

Parameters

NameTypeRequiredDescription
pageintegernoPage number (0-based, default: 0)
sizeintegernoPage size (default: 20, max: 200)
statusstringnoFilter: "ACTIVE", "IN_SESSION", "ENDED", "CANCELED"

Examples

-- List all upcoming webinars
local result = app.integrations["goto-webinar"].list_webinars({
  status = "ACTIVE"
})

for _, webinar in ipairs(result._embedded.webinars or {}) do
  print(webinar.subject .. " (" .. webinar.webinarKey .. ")")
end

-- Paginate through past webinars
local result = app.integrations["goto-webinar"].list_webinars({
  status = "ENDED",
  page = 0,
  size = 50
})

get_webinar

Get details of a specific webinar.

Parameters

NameTypeRequiredDescription
idstringyesThe webinar key

Example

local result = app.integrations["goto-webinar"].get_webinar({
  id = "1234567890"
})
print(result.subject)
print(result.description)

create_webinar

Schedule a new webinar.

Parameters

NameTypeRequiredDescription
subjectstringyesWebinar title
timesarrayyesTime slots with startTime and endTime (ISO 8601)
descriptionstringnoWebinar description

Time Slot Format

Each time slot must include:

{
  "startTime": "2026-04-10T15:00:00Z",
  "endTime": "2026-04-10T16:00:00Z"
}

For recurring webinars, pass multiple time slots.

Example

local result = app.integrations["goto-webinar"].create_webinar({
  subject = "Q2 Product Demo",
  times = {
    {
      startTime = "2026-04-15T14:00:00Z",
      endTime = "2026-04-15T15:00:00Z"
    }
  },
  description = "Join us for a live demo of our latest features."
})
print("Created webinar: " .. result.webinarKey)

list_sessions

List sessions for a specific webinar.

Parameters

NameTypeRequiredDescription
webinar_idstringyesThe webinar key
pageintegernoPage number (0-based, default: 0)
sizeintegernoPage size (default: 20)

Example

local result = app.integrations["goto-webinar"].list_sessions({
  webinar_id = "1234567890"
})
for _, session in ipairs(result._embedded.sessions or {}) do
  print(session.sessionKey .. ": " .. session.startTime)
end

get_session

Get details of a specific session.

Parameters

NameTypeRequiredDescription
webinar_idstringyesThe webinar key
idstringyesThe session key

Example

local result = app.integrations["goto-webinar"].get_session({
  webinar_id = "1234567890",
  id = "9876543210"
})
print("Attendees: " .. result.attendees)
print("Duration (seconds): " .. result.duration)

list_panelists

List panelists for a specific webinar.

Parameters

NameTypeRequiredDescription
webinar_idstringyesThe webinar key
pageintegernoPage number (0-based, default: 0)
sizeintegernoPage size (default: 20)

Example

local result = app.integrations["goto-webinar"].list_panelists({
  webinar_id = "1234567890"
})
for _, panelist in ipairs(result._embedded.panelists or {}) do
  print(panelist.name .. " <" .. panelist.email .. ">")
end

get_current_user

Get the authenticated user’s profile.

Parameters

None.

Example

local result = app.integrations["goto-webinar"].get_current_user({})
print(result.firstName .. " " .. result.lastName)
print("Email: " .. result.email)
print("Account key: " .. result.accountKey)

Multi-Account Usage

If you have multiple GoTo Webinar accounts configured, use account-specific namespaces:

-- Default account (always works)
app.integrations["goto-webinar"].function_name({...})

-- Explicit default (portable across setups)
app.integrations["goto-webinar"].default.function_name({...})

-- Named accounts
app.integrations["goto-webinar"].marketing.function_name({...})
app.integrations["goto-webinar"].sales.function_name({...})

All functions are identical across accounts — only the credentials differ.

Raw agent markdown
# GoTo Webinar — Lua API Reference

## list_webinars

List webinars from GoTo Webinar.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `page` | integer | no | Page number (0-based, default: 0) |
| `size` | integer | no | Page size (default: 20, max: 200) |
| `status` | string | no | Filter: `"ACTIVE"`, `"IN_SESSION"`, `"ENDED"`, `"CANCELED"` |

### Examples

```lua
-- List all upcoming webinars
local result = app.integrations["goto-webinar"].list_webinars({
  status = "ACTIVE"
})

for _, webinar in ipairs(result._embedded.webinars or {}) do
  print(webinar.subject .. " (" .. webinar.webinarKey .. ")")
end

-- Paginate through past webinars
local result = app.integrations["goto-webinar"].list_webinars({
  status = "ENDED",
  page = 0,
  size = 50
})
```

---

## get_webinar

Get details of a specific webinar.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `id` | string | yes | The webinar key |

### Example

```lua
local result = app.integrations["goto-webinar"].get_webinar({
  id = "1234567890"
})
print(result.subject)
print(result.description)
```

---

## create_webinar

Schedule a new webinar.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `subject` | string | yes | Webinar title |
| `times` | array | yes | Time slots with `startTime` and `endTime` (ISO 8601) |
| `description` | string | no | Webinar description |

### Time Slot Format

Each time slot must include:

```json
{
  "startTime": "2026-04-10T15:00:00Z",
  "endTime": "2026-04-10T16:00:00Z"
}
```

For recurring webinars, pass multiple time slots.

### Example

```lua
local result = app.integrations["goto-webinar"].create_webinar({
  subject = "Q2 Product Demo",
  times = {
    {
      startTime = "2026-04-15T14:00:00Z",
      endTime = "2026-04-15T15:00:00Z"
    }
  },
  description = "Join us for a live demo of our latest features."
})
print("Created webinar: " .. result.webinarKey)
```

---

## list_sessions

List sessions for a specific webinar.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `webinar_id` | string | yes | The webinar key |
| `page` | integer | no | Page number (0-based, default: 0) |
| `size` | integer | no | Page size (default: 20) |

### Example

```lua
local result = app.integrations["goto-webinar"].list_sessions({
  webinar_id = "1234567890"
})
for _, session in ipairs(result._embedded.sessions or {}) do
  print(session.sessionKey .. ": " .. session.startTime)
end
```

---

## get_session

Get details of a specific session.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `webinar_id` | string | yes | The webinar key |
| `id` | string | yes | The session key |

### Example

```lua
local result = app.integrations["goto-webinar"].get_session({
  webinar_id = "1234567890",
  id = "9876543210"
})
print("Attendees: " .. result.attendees)
print("Duration (seconds): " .. result.duration)
```

---

## list_panelists

List panelists for a specific webinar.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `webinar_id` | string | yes | The webinar key |
| `page` | integer | no | Page number (0-based, default: 0) |
| `size` | integer | no | Page size (default: 20) |

### Example

```lua
local result = app.integrations["goto-webinar"].list_panelists({
  webinar_id = "1234567890"
})
for _, panelist in ipairs(result._embedded.panelists or {}) do
  print(panelist.name .. " <" .. panelist.email .. ">")
end
```

---

## get_current_user

Get the authenticated user's profile.

### Parameters

None.

### Example

```lua
local result = app.integrations["goto-webinar"].get_current_user({})
print(result.firstName .. " " .. result.lastName)
print("Email: " .. result.email)
print("Account key: " .. result.accountKey)
```

---

## Multi-Account Usage

If you have multiple GoTo Webinar accounts configured, use account-specific namespaces:

```lua
-- Default account (always works)
app.integrations["goto-webinar"].function_name({...})

-- Explicit default (portable across setups)
app.integrations["goto-webinar"].default.function_name({...})

-- Named accounts
app.integrations["goto-webinar"].marketing.function_name({...})
app.integrations["goto-webinar"].sales.function_name({...})
```

All functions are identical across accounts — only the credentials differ.

Metadata-Derived Lua Example

local result = app.integrations.goto_webinar.gotowebinar_list_webinars({
  page = 1,
  size = 1,
  status = "example_status"
})
print(result)

Functions

gotowebinar_list_webinars

List webinars from GoTo Webinar. Returns upcoming, in-progress, and past webinars. Use the status parameter to filter by webinar state.

Operation
Read read
Full name
goto-webinar.gotowebinar_list_webinars
ParameterTypeRequiredDescription
page integer no Page number for pagination (0-based, default: 0).
size integer no Number of results per page (default: 20, max: 200).
status string no Filter by webinar status: "ACTIVE", "IN_SESSION", "ENDED", "CANCELED". Omit to list all.

gotowebinar_get_webinar

Get detailed information about a specific webinar, including schedule, registration settings, and organizer details.

Operation
Read read
Full name
goto-webinar.gotowebinar_get_webinar
ParameterTypeRequiredDescription
id string yes The webinar key (webinar ID).

gotowebinar_create_webinar

Schedule a new webinar in GoTo Webinar. Provide a subject, one or more time slots (each with startTime and endTime in ISO 8601 format), and an optional description.

Operation
Write write
Full name
goto-webinar.gotowebinar_create_webinar
ParameterTypeRequiredDescription
subject string yes The webinar subject/title.
times array yes Array of time slots. Each slot must have "startTime" and "endTime" in ISO 8601 format (e.g., "2026-04-10T15:00:00Z").
description string no Optional description of the webinar.

gotowebinar_list_sessions

List all sessions for a specific webinar. Each session represents one occurrence of a webinar (useful for recurring webinars).

Operation
Read read
Full name
goto-webinar.gotowebinar_list_sessions
ParameterTypeRequiredDescription
webinar_id string yes The webinar key.
page integer no Page number for pagination (0-based, default: 0).
size integer no Number of results per page (default: 20, max: 200).

gotowebinar_get_session

Get detailed information about a specific webinar session, including attendance, duration, and participant statistics.

Operation
Read read
Full name
goto-webinar.gotowebinar_get_session
ParameterTypeRequiredDescription
webinar_id string yes The webinar key.
id string yes The session key (session ID).

gotowebinar_list_panelists

List all panelists for a specific webinar. Panelists are featured speakers who have enhanced permissions during the webinar.

Operation
Read read
Full name
goto-webinar.gotowebinar_list_panelists
ParameterTypeRequiredDescription
webinar_id string yes The webinar key.
page integer no Page number for pagination (0-based, default: 0).
size integer no Number of results per page (default: 20, max: 200).

gotowebinar_get_current_user

Get the profile of the currently authenticated GoTo Webinar user. Useful for verifying credentials and identifying the organizer account.

Operation
Read read
Full name
goto-webinar.gotowebinar_get_current_user
ParameterTypeRequiredDescription
No parameters.