Adding a webhook integration

To manage integrations, first open a DM with @frame, which you'll find in the sidebar under "Apps."

  1. Enter the /frame slash command to display the Frame menu.
  2. Select Integrations.
  3. Press the Add Integration dropdown and select Webhook Action.
  4. Give your new button a name, then enter the webhook URL. When using Zapier, you'll need to first create the zap and set webhook as the trigger to generate your URL.
  5. Finally, you have the option of creating a dialog that agents will complete when using this webhook. For example, when creating a task in a project management tool, you might want to ask the agent to select a project, set a task name, and add an optional comment. See below for notes on how to use this dialog builder.


Webhook Dialog Builder

Frame uses a simple YAML format to help you build a dialog for your webhook.

You create up to five (5) fields to be captured in your dialog. You can use any combination of Slack's field types:

  • Text (short text field)
  • Text Area (long text field)
  • Select (single select dropdown)

You can read all about these elements in Slack's dialog documentation.


  • All fields are required

Condensed Code

The simplest way to define a field is to use the condensed version. The field name goes on the left, the field type goes on the right. If defining a dropdown, put the display text of each option on the right. The value of each selected option will be the same as the display text.

Project: ["Project 1", "Project 2", "Project 3"]
Name: text
Note: textarea

Nested Code

When you're ready to up your game, you can use the nested syntax to specify more details about each field.

  • You can set any field to be optional
  • You can add hint text to any field
  • For select fields, you can set the value to be different from the label, and you can set its default value.
  • The standard indention is two spaces.
  type: select
  value: "Project 1" # optional default dropdown selection
    - label: Project 1
    value: Project 1
    - label: Project 2
    value: Project 2
  optional: false
  type: text
  optional: false
  type: textarea
  hint: "Optional note from the agent"

Note: you can use both condensed and nested field definitions when creating a dialog definition.

Webhook payload

You'll find the dialog fields and values in a child object called arguments.

A note on defining dropdowns

When defining a dialog, you might find yourself wanting to create a dropdown comprising values from another tool, such as a list of available projects in a project management tool. This can get tricky in two ways:

  • Slack's text_area field type can only hold up to 500 characters, which prevents entering a long list of dropdown items.
  • If your project list is dynamic, you'll need to update your Frame webhook every time you add a potential project. (Yuck.)

Instead, one strategy is to use a text field instead of a dropdown, then use a query or list method in your zap to search available projects by the entered text, pick the best match, and continue on. You'll see this approach in other templates here.