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

# Slack: Actions/wait For Action

> Post or update a native Block Kit message and durably wait for one of its button action_ids inside a Play. Includes SDK V2 examples, schemas, and cost.

Post or update a native Block Kit message and durably wait for one of its button action\_ids inside a Play.

<Info>
  Tool ID: `slack_wait_for_action`
</Info>

## Run this action

Use the TypeScript SDK for a single call. Put `ctx.tools.execute(...)` inside a Play when the call should be durable, scheduled, or run across a CSV.

```ts theme={null}
import { Deepline } from 'deepline';

const deepline = await Deepline.connect();
const result = await deepline.tools.execute(
  'slack_wait_for_action',
  {
    "method": "chat.postMessage",
    "params": {}
  },
);

console.log(result.toolResponse.raw);
```

### CLI

```bash theme={null}
deepline tools execute slack_wait_for_action --input '{
  "method": "chat.postMessage",
  "params": {}
}' --json
```

## Example response

The SDK exposes this shape at `result.toolResponse.raw`. Values below are representative.

```json theme={null}
{
  "data": {
    "type": "action",
    "actionId": "action_123",
    "value": {},
    "user": {},
    "messageId": "message_123",
    "channel": "example",
    "ts": "example",
    "action_id": "action_123",
    "block_id": "block_123",
    "action_ts": "example",
    "message_ref": {
      "channel": "example",
      "ts": "example"
    },
    "event_payload": {},
    "timed_out": true
  }
}
```

Use `deepline tools get slack_wait_for_action --json` for the latest machine-readable contract.

## Input reference

Update or post one native Slack message revision, then durably wait for one of its Block Kit buttons. Every button in params.blocks can resolve the wait. Waits are limited to 30 days.

| Name              | Type                                  | Required | Default | Details                                                                                                                                                                                                |
| ----------------- | ------------------------------------- | -------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `payload.method`  | `"chat.postMessage" \| "chat.update"` | Yes      | —       | Slack message method to call before waiting. Use chat.postMessage for a new card and chat.update with channel and ts to replace an existing card in place. Allowed: `chat.postMessage`, `chat.update`. |
| `payload.params`  | `record`                              | Yes      | —       | Native chat.postMessage or chat.update arguments. Block Kit buttons keep their action\_id and appearance; Deepline manages the one-use callback internally and returns the original button value.      |
| `payload.timeout` | `string`                              | No       | —       | Wait duration such as 30m or 24h (maximum 30 days). Omit for the Play edition default; null waits to the 30-day platform ceiling. Minimum length: 1.                                                   |

<details>
  <summary>Show raw input schema</summary>

  ### Input JSON Schema

  ```json theme={null}
  {
    "type": "object",
    "description": "Update or post one native Slack message revision, then durably wait for one of its Block Kit buttons. Every button in params.blocks can resolve the wait. Waits are limited to 30 days.",
    "properties": {
      "method": {
        "type": "string",
        "description": "Slack message method to call before waiting. Use chat.postMessage for a new card and chat.update with channel and ts to replace an existing card in place.",
        "enum": [
          "chat.postMessage",
          "chat.update"
        ]
      },
      "params": {
        "type": "object",
        "description": "Native chat.postMessage or chat.update arguments. Block Kit buttons keep their action_id and appearance; Deepline manages the one-use callback internally and returns the original button value.",
        "additionalProperties": {}
      },
      "timeout": {
        "type": [
          "string",
          "null"
        ],
        "description": "Wait duration such as 30m or 24h (maximum 30 days). Omit for the Play edition default; null waits to the 30-day platform ceiling.",
        "minLength": 1
      }
    },
    "required": [
      "method",
      "params"
    ],
    "additionalProperties": false
  }
  ```
</details>

## Output reference

| Name                              | Type                    | Required | Default | Details                                                                                                                          |
| --------------------------------- | ----------------------- | -------- | ------- | -------------------------------------------------------------------------------------------------------------------------------- |
| `result.data`                     | `object`                | Yes      | —       | Normalized Slack button action with Chat SDK-style actionId/value/user/messageId fields and the native Slack interaction fields. |
| `result.data.type`                | `"action" \| "timeout"` | Yes      | —       | Allowed: `action`, `timeout`.                                                                                                    |
| `result.data.actionId`            | `string \| null`        | Yes      | —       | —                                                                                                                                |
| `result.data.value`               | `unknown`               | Yes      | —       | —                                                                                                                                |
| `result.data.user`                | `object \| null`        | Yes      | —       | —                                                                                                                                |
| `result.data.messageId`           | `string \| null`        | Yes      | —       | —                                                                                                                                |
| `result.data.channel`             | `string`                | Yes      | —       | Minimum length: 1.                                                                                                               |
| `result.data.ts`                  | `string \| null`        | Yes      | —       | —                                                                                                                                |
| `result.data.action_id`           | `string \| null`        | Yes      | —       | —                                                                                                                                |
| `result.data.block_id`            | `string \| null`        | Yes      | —       | —                                                                                                                                |
| `result.data.action_ts`           | `string \| null`        | Yes      | —       | —                                                                                                                                |
| `result.data.message_ref`         | `object`                | Yes      | —       | —                                                                                                                                |
| `result.data.message_ref.channel` | `string`                | Yes      | —       | Minimum length: 1.                                                                                                               |
| `result.data.message_ref.ts`      | `string \| null`        | Yes      | —       | —                                                                                                                                |
| `result.data.event_payload`       | `object \| null`        | Yes      | —       | —                                                                                                                                |
| `result.data.timed_out`           | `boolean`               | Yes      | —       | —                                                                                                                                |
| `result.meta`                     | `record`                | No       | —       | —                                                                                                                                |

<details>
  <summary>Show raw output schema</summary>

  ### Output JSON Schema

  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "data": {
        "type": "object",
        "description": "Normalized Slack button action with Chat SDK-style actionId/value/user/messageId fields and the native Slack interaction fields.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "action",
              "timeout"
            ]
          },
          "actionId": {
            "type": [
              "string",
              "null"
            ]
          },
          "value": {},
          "user": {
            "type": [
              "object",
              "null"
            ],
            "additionalProperties": {}
          },
          "messageId": {
            "type": [
              "string",
              "null"
            ]
          },
          "channel": {
            "type": "string",
            "minLength": 1
          },
          "ts": {
            "type": [
              "string",
              "null"
            ]
          },
          "action_id": {
            "type": [
              "string",
              "null"
            ]
          },
          "block_id": {
            "type": [
              "string",
              "null"
            ]
          },
          "action_ts": {
            "type": [
              "string",
              "null"
            ]
          },
          "message_ref": {
            "type": "object",
            "properties": {
              "channel": {
                "type": "string",
                "minLength": 1
              },
              "ts": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "channel",
              "ts"
            ],
            "additionalProperties": false
          },
          "event_payload": {
            "type": [
              "object",
              "null"
            ],
            "additionalProperties": {}
          },
          "timed_out": {
            "type": "boolean"
          }
        },
        "required": [
          "type",
          "actionId",
          "value",
          "user",
          "messageId",
          "channel",
          "ts",
          "action_id",
          "block_id",
          "action_ts",
          "message_ref",
          "event_payload",
          "timed_out"
        ],
        "additionalProperties": true
      },
      "meta": {
        "type": "object",
        "additionalProperties": {}
      }
    },
    "required": [
      "data"
    ],
    "additionalProperties": false
  }
  ```
</details>

## Deepline cost

* Pricing model: `fixed` (per call).
* Estimated Deepline credits: `0` per pricing unit.
* Provider-native pricing may still exist outside Deepline credit billing.

## Related documentation

* [Slack provider guide](/docs/providers/slack/guide)
* [SDK V2 quickstart](/docs/sdk-v2/quickstart)
* [SDK reference](/docs/sdk-v2/sdk-reference)
* [Run tools across a CSV](/docs/sdk-v2/batch-csv)
