{
  "service": "beamer",
  "displayName": "Beamer",
  "categories": [
    "Communication",
    "Productivity"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "BEAMER_API_KEY",
      "description": "Beamer API key sent in the Beamer-Api-Key header. Find or manage it in Settings > API after signing in: https://app.getbeamer.com/settings."
    }
  ],
  "homepageUrl": "https://www.getbeamer.com",
  "actions": [
    {
      "id": "beamer.count_unread_posts",
      "service": "beamer",
      "name": "count_unread_posts",
      "description": "Count unread Beamer posts for one end-user context.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "string",
            "minLength": 1,
            "description": "The end-user identifier used together with filterByUserId."
          },
          "filterByUserId": {
            "type": "boolean",
            "description": "Whether to include single-user posts that match the provided userId."
          }
        },
        "additionalProperties": false,
        "description": "Query parameters for counting unread posts for one Beamer end-user context."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "count": {
            "type": "integer",
            "description": "The number of unread posts."
          }
        },
        "additionalProperties": false,
        "required": [
          "count"
        ],
        "description": "The unread post count returned by Beamer."
      }
    },
    {
      "id": "beamer.create_post",
      "service": "beamer",
      "name": "create_post",
      "description": "Create a new Beamer changelog post with one or more translations.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "title": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "One translated post title."
            },
            "description": "The translated post titles in Beamer order.",
            "minItems": 1
          },
          "content": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "One translated post content string."
            },
            "description": "The translated post content values in the same order as the titles.",
            "minItems": 1
          },
          "category": {
            "type": "string",
            "minLength": 1,
            "description": "The category to assign to the new post."
          },
          "publish": {
            "type": "boolean",
            "description": "Whether to publish the post immediately."
          },
          "archive": {
            "type": "boolean",
            "description": "Whether the post should start archived."
          },
          "pinned": {
            "type": "boolean",
            "description": "Whether the post should be pinned to the top of the feed."
          },
          "showInWidget": {
            "type": "boolean",
            "description": "Whether the post should appear in the embedded widget."
          },
          "showInStandalone": {
            "type": "boolean",
            "description": "Whether the post should appear in the standalone feed."
          },
          "boostedAnnouncement": {
            "type": "string",
            "enum": [
              "top-bar",
              "popup",
              "snippet",
              "tooltip"
            ],
            "description": "The boosted announcement treatment to apply to the post."
          },
          "linkUrl": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "One translated CTA URL."
            },
            "description": "The translated CTA URLs in Beamer order."
          },
          "linkText": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "One translated CTA label."
            },
            "description": "The translated CTA labels in Beamer order."
          },
          "linksInNewWindow": {
            "type": "boolean",
            "description": "Whether links should open in a new tab or window."
          },
          "date": {
            "type": "string",
            "description": "An ISO-8601 date-time string accepted by the Beamer API.",
            "format": "date-time"
          },
          "dueDate": {
            "type": "string",
            "description": "An ISO-8601 date-time string accepted by the Beamer API.",
            "format": "date-time"
          },
          "language": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 2,
              "maxLength": 2,
              "description": "A two-letter ISO-639 language code used by Beamer for localized content."
            },
            "description": "The translated language codes in Beamer order."
          },
          "filter": {
            "type": "string",
            "minLength": 1,
            "description": "The segmentation filter string for this post."
          },
          "filterUserId": {
            "type": "string",
            "minLength": 1,
            "description": "The single-user filter identifier or semicolon-separated identifiers for this post."
          },
          "filterUrl": {
            "type": "string",
            "minLength": 1,
            "description": "The URL targeting filter string for this post."
          },
          "enableFeedback": {
            "type": "boolean",
            "description": "Whether feedback should be enabled for the post."
          },
          "enableReactions": {
            "type": "boolean",
            "description": "Whether reactions should be enabled for the post."
          },
          "enableSocialShare": {
            "type": "boolean",
            "description": "Whether social sharing should be enabled for the post."
          },
          "autoOpen": {
            "type": "boolean",
            "description": "Whether the Beamer sidebar should auto-open for recipients."
          },
          "sendPushNotification": {
            "type": "boolean",
            "description": "Whether a web push notification should be sent for the post."
          },
          "userEmail": {
            "type": "string",
            "minLength": 1,
            "description": "The email of the Beamer account user creating this post."
          },
          "fixedBoostedAnnouncement": {
            "type": "boolean",
            "description": "Whether a boosted top-bar announcement should stay fixed on screen."
          }
        },
        "additionalProperties": false,
        "required": [
          "title",
          "content"
        ],
        "description": "The JSON body for creating one Beamer changelog post."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "post": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The Beamer post identifier."
              },
              "date": {
                "type": "string",
                "description": "The post publication date in ISO-8601 format."
              },
              "dueDate": {
                "type": "string",
                "description": "The post expiration date in ISO-8601 format."
              },
              "published": {
                "type": "boolean",
                "description": "Whether the post is published."
              },
              "pinned": {
                "type": "boolean",
                "description": "Whether the post is pinned."
              },
              "showInWidget": {
                "type": "boolean",
                "description": "Whether the post appears in the embedded widget."
              },
              "showInStandalone": {
                "type": "boolean",
                "description": "Whether the post appears in the standalone feed."
              },
              "category": {
                "type": "string",
                "description": "The post category identifier."
              },
              "boostedAnnouncement": {
                "type": "string",
                "description": "The boosted announcement treatment applied to the post."
              },
              "translations": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "title": {
                      "type": "string",
                      "description": "The translated post title."
                    },
                    "content": {
                      "type": "string",
                      "description": "The translated post content in plain text."
                    },
                    "contentHtml": {
                      "type": "string",
                      "description": "The translated post content in HTML format."
                    },
                    "language": {
                      "type": "string",
                      "description": "The language code for this translation."
                    },
                    "category": {
                      "type": "string",
                      "description": "The translated category label when one exists."
                    },
                    "linkUrl": {
                      "type": "string",
                      "description": "The CTA URL for this translation when one exists."
                    },
                    "linkText": {
                      "type": "string",
                      "description": "The CTA label for this translation when one exists."
                    },
                    "images": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "description": "One image URL."
                      },
                      "description": "The image URLs embedded in this translation."
                    }
                  },
                  "additionalProperties": false,
                  "description": "One translated content variant returned by the Beamer API."
                },
                "description": "The translated content blocks available for this post."
              },
              "filter": {
                "type": "string",
                "description": "The segmentation filter string applied to the post."
              },
              "filterUrl": {
                "type": "string",
                "description": "The URL targeting filter applied to the post."
              },
              "autoOpen": {
                "type": "boolean",
                "description": "Whether the post auto-opens the sidebar for recipients."
              },
              "editionDate": {
                "type": "string",
                "description": "The last edition date in ISO-8601 format."
              },
              "feedbackEnabled": {
                "type": "boolean",
                "description": "Whether feedback is enabled for the post."
              },
              "reactionsEnabled": {
                "type": "boolean",
                "description": "Whether reactions are enabled for the post."
              },
              "views": {
                "type": "integer",
                "description": "The total view count for the post."
              },
              "uniqueViews": {
                "type": "integer",
                "description": "The unique view count for the post."
              },
              "clicks": {
                "type": "integer",
                "description": "The tracked click count for the post."
              },
              "feedbacks": {
                "type": "integer",
                "description": "The feedback count for the post."
              },
              "positiveReactions": {
                "type": "integer",
                "description": "The positive reaction count for the post."
              },
              "neutralReactions": {
                "type": "integer",
                "description": "The neutral reaction count for the post."
              },
              "negativeReactions": {
                "type": "integer",
                "description": "The negative reaction count for the post."
              }
            },
            "additionalProperties": false,
            "required": [
              "id"
            ],
            "description": "One Beamer changelog post returned by the API."
          }
        },
        "additionalProperties": false,
        "required": [
          "post"
        ],
        "description": "The Beamer post created by the connector."
      }
    },
    {
      "id": "beamer.get_feed_url",
      "service": "beamer",
      "name": "get_feed_url",
      "description": "Retrieve the standalone Beamer feed URL with optional language and segmentation filters.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "language": {
            "type": "string",
            "minLength": 2,
            "maxLength": 2,
            "description": "A two-letter ISO-639 language code used by Beamer for feed localization."
          },
          "filterByUrl": {
            "type": "boolean",
            "description": "Whether URL segmentation should be applied to the feed URL."
          },
          "filter": {
            "type": "string",
            "minLength": 1,
            "description": "An optional segmentation filter string to apply."
          }
        },
        "additionalProperties": false,
        "description": "Query parameters for retrieving the standalone Beamer feed URL."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "feedUrl": {
            "type": "string",
            "description": "The standalone Beamer feed URL."
          }
        },
        "additionalProperties": false,
        "required": [
          "feedUrl"
        ],
        "description": "The standalone feed URL returned by Beamer."
      }
    },
    {
      "id": "beamer.list_posts",
      "service": "beamer",
      "name": "list_posts",
      "description": "List existing Beamer posts with optional changelog, audience, and analytics filters.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "filter": {
            "type": "string",
            "minLength": 1,
            "description": "Retrieve posts with a matching segmentation filter."
          },
          "forceFilter": {
            "type": "string",
            "minLength": 1,
            "description": "Only retrieve posts that match this segmentation filter."
          },
          "filterUrl": {
            "type": "string",
            "minLength": 1,
            "description": "Retrieve posts with a matching segmentation URL."
          },
          "dateFrom": {
            "type": "string",
            "description": "An ISO-8601 date-time string accepted by the Beamer API.",
            "format": "date-time"
          },
          "dateTo": {
            "type": "string",
            "description": "An ISO-8601 date-time string accepted by the Beamer API.",
            "format": "date-time"
          },
          "language": {
            "type": "string",
            "minLength": 2,
            "maxLength": 2,
            "description": "A two-letter ISO-639 language code used by Beamer for localized content."
          },
          "category": {
            "type": "string",
            "minLength": 1,
            "description": "Retrieve posts for a specific category."
          },
          "published": {
            "type": "boolean",
            "description": "Whether to retrieve only published or only draft posts."
          },
          "archived": {
            "type": "boolean",
            "description": "Whether to retrieve only archived or only non-archived posts."
          },
          "expired": {
            "type": "boolean",
            "description": "Whether to retrieve only expired or only non-expired posts."
          },
          "filterByUserId": {
            "type": "boolean",
            "description": "Whether to include single-user posts that match the provided userId."
          },
          "userFirstName": {
            "type": "string",
            "minLength": 1,
            "description": "The end user's first name used for analytics attribution."
          },
          "userLastName": {
            "type": "string",
            "minLength": 1,
            "description": "The end user's last name used for analytics attribution."
          },
          "userEmail": {
            "type": "string",
            "minLength": 1,
            "description": "The end user's email used for analytics attribution."
          },
          "userId": {
            "type": "string",
            "minLength": 1,
            "description": "The end-user identifier used for analytics attribution."
          },
          "traceableLinks": {
            "type": "boolean",
            "description": "Whether Beamer should rewrite links into tracked URLs."
          },
          "ignoreRequestDetails": {
            "type": "boolean",
            "description": "Whether backend request IP, browser, OS, and geolocation details should be ignored."
          },
          "saveViews": {
            "type": "boolean",
            "description": "Whether fetching these posts should save views in Beamer analytics."
          },
          "maxResults": {
            "type": "integer",
            "minimum": 1,
            "maximum": 10,
            "description": "The maximum number of posts to return."
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "The results page to retrieve."
          },
          "ignoreFilters": {
            "type": "boolean",
            "description": "Whether Beamer should ignore segmentation filters when returning posts."
          }
        },
        "additionalProperties": false,
        "description": "Query parameters for listing existing posts from the Beamer API."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "posts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The Beamer post identifier."
                },
                "date": {
                  "type": "string",
                  "description": "The post publication date in ISO-8601 format."
                },
                "dueDate": {
                  "type": "string",
                  "description": "The post expiration date in ISO-8601 format."
                },
                "published": {
                  "type": "boolean",
                  "description": "Whether the post is published."
                },
                "pinned": {
                  "type": "boolean",
                  "description": "Whether the post is pinned."
                },
                "showInWidget": {
                  "type": "boolean",
                  "description": "Whether the post appears in the embedded widget."
                },
                "showInStandalone": {
                  "type": "boolean",
                  "description": "Whether the post appears in the standalone feed."
                },
                "category": {
                  "type": "string",
                  "description": "The post category identifier."
                },
                "boostedAnnouncement": {
                  "type": "string",
                  "description": "The boosted announcement treatment applied to the post."
                },
                "translations": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "title": {
                        "type": "string",
                        "description": "The translated post title."
                      },
                      "content": {
                        "type": "string",
                        "description": "The translated post content in plain text."
                      },
                      "contentHtml": {
                        "type": "string",
                        "description": "The translated post content in HTML format."
                      },
                      "language": {
                        "type": "string",
                        "description": "The language code for this translation."
                      },
                      "category": {
                        "type": "string",
                        "description": "The translated category label when one exists."
                      },
                      "linkUrl": {
                        "type": "string",
                        "description": "The CTA URL for this translation when one exists."
                      },
                      "linkText": {
                        "type": "string",
                        "description": "The CTA label for this translation when one exists."
                      },
                      "images": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "description": "One image URL."
                        },
                        "description": "The image URLs embedded in this translation."
                      }
                    },
                    "additionalProperties": false,
                    "description": "One translated content variant returned by the Beamer API."
                  },
                  "description": "The translated content blocks available for this post."
                },
                "filter": {
                  "type": "string",
                  "description": "The segmentation filter string applied to the post."
                },
                "filterUrl": {
                  "type": "string",
                  "description": "The URL targeting filter applied to the post."
                },
                "autoOpen": {
                  "type": "boolean",
                  "description": "Whether the post auto-opens the sidebar for recipients."
                },
                "editionDate": {
                  "type": "string",
                  "description": "The last edition date in ISO-8601 format."
                },
                "feedbackEnabled": {
                  "type": "boolean",
                  "description": "Whether feedback is enabled for the post."
                },
                "reactionsEnabled": {
                  "type": "boolean",
                  "description": "Whether reactions are enabled for the post."
                },
                "views": {
                  "type": "integer",
                  "description": "The total view count for the post."
                },
                "uniqueViews": {
                  "type": "integer",
                  "description": "The unique view count for the post."
                },
                "clicks": {
                  "type": "integer",
                  "description": "The tracked click count for the post."
                },
                "feedbacks": {
                  "type": "integer",
                  "description": "The feedback count for the post."
                },
                "positiveReactions": {
                  "type": "integer",
                  "description": "The positive reaction count for the post."
                },
                "neutralReactions": {
                  "type": "integer",
                  "description": "The neutral reaction count for the post."
                },
                "negativeReactions": {
                  "type": "integer",
                  "description": "The negative reaction count for the post."
                }
              },
              "additionalProperties": false,
              "required": [
                "id"
              ],
              "description": "One Beamer changelog post returned by the API."
            },
            "description": "The Beamer posts that matched the request."
          }
        },
        "additionalProperties": false,
        "required": [
          "posts"
        ],
        "description": "The Beamer posts returned by the connector."
      }
    }
  ]
}
