{
  "service": "webinarjam",
  "displayName": "WebinarJam",
  "categories": [
    "Communication",
    "Marketing"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "WEBINARJAM_API_KEY",
      "description": "WebinarJam API key sent as the api_key form field. Find or regenerate it from your WebinarJam API custom integration settings: https://support.webinarjam.com/support/solutions/articles/153000246357-regenerate-a-webinarjam-everwebinar-api-key",
      "extraFields": []
    }
  ],
  "homepageUrl": "https://webinarjam.com",
  "actions": [
    {
      "id": "webinarjam.get_webinar",
      "service": "webinarjam",
      "name": "get_webinar",
      "description": "Get details for one WebinarJam webinar.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "webinarId": {
            "type": "integer",
            "minimum": 1,
            "description": "The WebinarJam webinar_id value."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for getting a WebinarJam webinar."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "webinar": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A WebinarJam webinar object returned by the API."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw WebinarJam webinar response."
          }
        },
        "additionalProperties": false,
        "description": "The response returned when getting a WebinarJam webinar."
      }
    },
    {
      "id": "webinarjam.list_registrants",
      "service": "webinarjam",
      "name": "list_registrants",
      "description": "List WebinarJam registrants or attendees for a webinar.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "webinarId": {
            "type": "integer",
            "minimum": 1,
            "description": "The WebinarJam webinar_id value."
          },
          "scheduleId": {
            "type": "integer",
            "minimum": 1,
            "description": "Only return users for this WebinarJam schedule_id value."
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "The result page to return."
          },
          "attendedLive": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4,
            "description": "Live attendance filter accepted by WebinarJam."
          },
          "attendedReplay": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4,
            "description": "Replay attendance filter accepted by WebinarJam."
          },
          "purchased": {
            "type": "integer",
            "minimum": 0,
            "maximum": 2,
            "description": "Purchase status filter accepted by WebinarJam."
          },
          "attendedLiveTimestamp": {
            "type": "integer",
            "minimum": 0,
            "description": "Unix timestamp filter accepted by WebinarJam for this list request."
          },
          "attendedReplayTimestamp": {
            "type": "integer",
            "minimum": 0,
            "description": "Unix timestamp filter accepted by WebinarJam for this list request."
          },
          "dateRange": {
            "type": "integer",
            "minimum": 0,
            "maximum": 8,
            "description": "Date range filter accepted by WebinarJam."
          },
          "search": {
            "type": "string",
            "minLength": 1,
            "description": "Search text used to filter registrants.",
            "pattern": "\\S"
          }
        },
        "additionalProperties": false,
        "required": [
          "webinarId"
        ],
        "description": "The input payload for listing WebinarJam registrants and attendees."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "registrants": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "first_name": {
                  "type": "string",
                  "description": "The registrant first name."
                },
                "last_name": {
                  "type": "string",
                  "description": "The registrant last name."
                },
                "email": {
                  "type": "string",
                  "description": "The registrant email address."
                },
                "phone": {
                  "type": "string",
                  "description": "The registrant phone number."
                },
                "schedule": {
                  "description": "The webinar schedule value returned by WebinarJam."
                }
              },
              "additionalProperties": true,
              "description": "A WebinarJam registrant or attendee object."
            },
            "description": "Registrants or attendees returned by WebinarJam."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw WebinarJam registrants response."
          }
        },
        "additionalProperties": false,
        "description": "The response returned when listing WebinarJam registrants."
      }
    },
    {
      "id": "webinarjam.list_webinars",
      "service": "webinarjam",
      "name": "list_webinars",
      "description": "List WebinarJam webinars published in the authenticated account.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "The input payload for listing WebinarJam webinars."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "webinars": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A WebinarJam webinar object returned by the API."
            },
            "description": "Webinars returned by WebinarJam."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw WebinarJam list response."
          }
        },
        "additionalProperties": false,
        "description": "The response returned when listing WebinarJam webinars."
      }
    },
    {
      "id": "webinarjam.register_user",
      "service": "webinarjam",
      "name": "register_user",
      "description": "Register one user for a WebinarJam webinar.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "webinarId": {
            "type": "integer",
            "minimum": 1,
            "description": "The WebinarJam webinar_id value."
          },
          "firstName": {
            "type": "string",
            "minLength": 1,
            "description": "The user's first name.",
            "pattern": "\\S"
          },
          "email": {
            "type": "string",
            "description": "The user's email address.",
            "format": "email"
          },
          "schedule": {
            "type": "integer",
            "minimum": 1,
            "description": "The WebinarJam schedule integer value to register the user for."
          },
          "lastName": {
            "type": "string",
            "minLength": 1,
            "description": "The user's last name.",
            "pattern": "\\S"
          },
          "country": {
            "type": "string",
            "minLength": 1,
            "description": "The user's country.",
            "pattern": "\\S"
          },
          "state": {
            "type": "string",
            "minLength": 1,
            "description": "The user's state or region.",
            "pattern": "\\S"
          },
          "timezoneId": {
            "type": "integer",
            "minimum": 1,
            "description": "The WebinarJam timezone_id integer value."
          },
          "ipAddress": {
            "type": "string",
            "minLength": 1,
            "description": "The user's IP address.",
            "pattern": "\\S"
          },
          "phoneCountryCode": {
            "type": "string",
            "minLength": 1,
            "description": "The user's phone country code.",
            "pattern": "\\S"
          },
          "phone": {
            "type": "string",
            "minLength": 1,
            "description": "The user's phone number.",
            "pattern": "\\S"
          },
          "twilioConsent": {
            "type": "boolean",
            "description": "Whether the user consented to SMS through Twilio."
          },
          "customFields": {
            "type": "object",
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "string",
                  "description": "A string custom field value."
                },
                {
                  "type": "number",
                  "description": "A numeric custom field value."
                },
                {
                  "type": "boolean",
                  "description": "A boolean custom field value."
                },
                {
                  "type": "array",
                  "items": {
                    "anyOf": [
                      {
                        "type": "string",
                        "description": "A selected custom field option ID."
                      },
                      {
                        "type": "number",
                        "description": "A numeric selected custom field option ID."
                      }
                    ],
                    "description": "One selected WebinarJam custom field option ID."
                  },
                  "description": "Selected dropdown option IDs for a custom field.",
                  "minItems": 1
                }
              ],
              "description": "One custom registration field value."
            },
            "description": "Additional WebinarJam custom registration fields keyed by field name or label."
          }
        },
        "additionalProperties": false,
        "required": [
          "webinarId",
          "firstName",
          "email",
          "schedule"
        ],
        "description": "The input payload for registering a WebinarJam user."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "registration": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The registered user object returned by WebinarJam."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw WebinarJam registration response."
          }
        },
        "additionalProperties": false,
        "description": "The response returned when registering a WebinarJam user."
      }
    }
  ]
}
