> ## Documentation Index
> Fetch the complete documentation index at: https://boundbot.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Actions

> Create reusable buttons, bookings, lead capture flows, human handoff actions, and API-powered actions.

export const BrowserWrapper = ({src, alt, title, description, height = '280px', caption, imgStyle = {}, children, imagePadding = '0px'}) => {
  const legacyDocsImagePrefix = '/images/';
  const productionDocsImagePrefix = '/docs/images';
  const rawSrc = typeof src === 'string' ? src : src && (src.src || src.default) || '';
  const imageSrc = rawSrc.startsWith(legacyDocsImagePrefix) ? `${productionDocsImagePrefix}/${rawSrc.slice(legacyDocsImagePrefix.length)}` : rawSrc;
  return <Frame caption={caption || alt || title} width="100%">
      <div style={{
    border: '1px solid #e2e8f0',
    borderRadius: '12px',
    overflow: 'hidden',
    boxShadow: '0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)',
    width: '100%'
  }}>
        <div style={{
    backgroundColor: '#f8fafc',
    padding: '10px 15px',
    borderBottom: '1px solid #e2e8f0',
    display: 'flex',
    gap: '6px'
  }}>
          <div style={{
    width: '10px',
    height: '10px',
    borderRadius: '50%',
    backgroundColor: '#ff5f56'
  }} />
          <div style={{
    width: '10px',
    height: '10px',
    borderRadius: '50%',
    backgroundColor: '#ffbd2e'
  }} />
          <div style={{
    width: '10px',
    height: '10px',
    borderRadius: '50%',
    backgroundColor: '#27c93f'
  }} />
        </div>
        <div style={{
    overflow: 'hidden',
    background: '#ffffff',
    width: '100%',
    padding: imagePadding
  }}>
          {src ? <img src={imageSrc} alt={alt || ''} data-docs-screenshot style={{
    ...imgStyle,
    width: '100%',
    minWidth: '100%',
    height: 'auto',
    display: 'block',
    borderRadius: '0px'
  }} /> : children ? children : null}
        </div>
      </div>
    </Frame>;
};

<a href="https://www.boundbot.com/dashboard/automations/actions" target="_blank" rel="noopener noreferrer">Actions</a> are reusable conversation tools for the AI agent and chat widget. They let the bot offer a button, collect lead details, start a booking flow, hand a thread to a human, or call an external API.

## Action types

| Action type       | Use it for                                                              | Key setup                                                   |
| ----------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------- |
| `Button`          | linking the user to another page or destination                         | action name, when to use, button text, URL                  |
| `Collect Leads`   | capturing contact details in chat                                       | action name, when to use, optional success and dismiss copy |
| `Cal`             | launching a Cal booking flow                                            | action name and usage guidance                              |
| `Calendly`        | launching a Calendly booking flow                                       | connected Calendly account and event type                   |
| `Stop Auto Reply` | handing the current conversation to a human by muting automatic replies | action name and when to use guidance                        |
| `Custom Actions`  | posting collected inputs to your own API                                | data inputs plus a request builder                          |

## Button action

Use the **Button** action when you want the bot to show a clickable link that sends the user to an external page—e.g. a signup form, pricing page, or documentation.

Configure **Button Text** (the label the user sees in the widget) and **Destination URL** (the external link). The AI will offer this button when the **when to use** instructions match the conversation.

<BrowserWrapper src="../images/action-button.png" alt="Button action configuration: Button Text and Destination URL for external links." caption="Configure the button label and destination URL so the bot can offer the right link at the right time." />

## Lead capture action

Use **Collect Leads** to capture contact details (e.g. email, name, company) directly in the chat. You can customize the **Success** and **Dismiss** messages so users get clear feedback after submitting or closing the form—improving trust and reducing confusion.

<BrowserWrapper src="../images/action-lead-capture.png" alt="Lead capture action with configurable Success and Dismiss messages." caption="Customize Success and Dismiss messages so users know their submission was received or can safely close without submitting." />

## Stop Auto Reply action

Use **Stop Auto Reply** when the bot should stop responding automatically and let a teammate take over the thread.

This action does not show a button or open a URL. Instead, it mutes auto replies for the current conversation so the next step happens in <a href="/guides/inbox">Inbox</a>.

Good examples for **when to use**:

* "Use when the customer asks for a human."
* "Use when the issue needs manual approval or exception handling."
* "Use when the user asks to stop automated replies."

<Tip>
  After this action runs, the conversation stays muted until your team turns auto reply back on from <a href="/guides/inbox">Inbox</a>.
</Tip>

## Cal booking action

Use the **Cal** action to start a meeting-booking flow (e.g. Cal.com). Provide clear **when to use** instructions so the AI agent knows exactly when to offer a meeting—for example, "Use when the user asks to book a demo" or "Use when the user wants to schedule a call with sales."

<BrowserWrapper src="../images/action-cal-booking.png" alt="Cal booking action configuration with when to use guidance." caption="Set explicit when-to-use instructions so the AI offers the Cal booking at the right moment in the conversation." />

## Custom API actions

**Custom actions** let you send collected inputs to your own API. The request builder supports:

* **Methods**: `GET`, `POST`, `PUT`, `DELETE` (and optionally others your dashboard exposes)
* **Headers**: Add authorization, content-type, or custom headers
* **Dynamic variables**: Use placeholders such as `{{email}}`, `{{company_name}}`, or `{{custom_field}}` in the URL, headers, or body so each request is filled with the user’s answers

<BrowserWrapper src="../images/action-custom-api.png" alt="Custom API action request builder with method, headers, and dynamic variables." caption="API request builder: set method, headers, and URL/body, and use dynamic variables for user-provided data." />

## Define when the AI should use the action

Every action includes a **when to use** field. This is important because it tells the AI when the action is appropriate instead of leaving the decision vague.

Good examples:

* "Use when the user wants a demo."
* "Use when the user asks to speak to sales."
* "Use when the user is ready to submit a support form."

## Custom actions

Custom actions support:

* request methods: `GET`, `POST`, `PUT`, `DELETE`
* query params
* headers
* JSON request body
* custom data input fields

You can insert collected values into the request using placeholders such as `{{email}}` or `{{company_name}}`.

## Deleting actions

Removing an action is **permanent** and cannot be undone. The action disappears from the list and will no longer be offered by the bot. Any workflows or bot logic that referenced it will need to be updated.

<BrowserWrapper src="../images/action-delete-modal.png" alt="Delete action confirmation modal warning that the action will be removed permanently." caption="Deleting an action removes it permanently; confirm only when you are sure you no longer need it." />

<Warning>
  Deleting an action is **permanent** and cannot be undone. Double-check that no workflows or bot flows depend on it before you confirm.
</Warning>

## Calendly note

Before you use a Calendly action, connect <a href="/developers/calendly">Calendly</a> in <a href="https://www.boundbot.com/dashboard/settings/general" target="_blank" rel="noopener noreferrer"><b>Settings</b></a> -> <a href="https://www.boundbot.com/dashboard/settings/integrations" target="_blank" rel="noopener noreferrer"><b>Integrations</b></a>. Otherwise the event-type picker has nothing to load.

## When to choose actions versus workflows

Use <a href="https://www.boundbot.com/dashboard/automations/actions" target="_blank" rel="noopener noreferrer"><b>Actions</b></a> when the task is a single interaction or one-off handoff.

Use <a href="https://www.boundbot.com/dashboard/automations/workflows" target="_blank" rel="noopener noreferrer"><b>Workflows</b></a> when you need multiple steps, branching logic, or saved execution history.

## Related pages

<CardGroup cols={2}>
  <Card title="Workflows" icon="workflow" href="/automation/workflows">
    Move to workflows when you need branching, waiting, or execution history.
  </Card>

  <Card title="Keyword rules" icon="filter" href="/automation/keyword-rules">
    Use simpler deterministic replies for narrow trigger phrases.
  </Card>

  <Card title="Integrations" icon="plug" href="/developers/integrations">
    Connect Calendly, Google Sheets, WordPress, and MCP tools before you depend on them in actions.
  </Card>

  <Card title="Leads and orders" icon="shopping-cart" href="/sales/leads-orders">
    Review the captured data that lead-focused actions send into the workspace. <a href="https://www.boundbot.com/dashboard/sales/leads" target="_blank" rel="noopener noreferrer">Open leads in app</a>.
  </Card>
</CardGroup>
