# geni integration operation (/cli/integration/operation)



```sh
geni integration operation <opId> [flags]
geni integration operation <service> <opId> [flags]
```

Prints the full reference docs for one operation: HTTP method and path, params, required scopes, request and response shapes, code examples, and the env var names the credential will set.

This is the most useful command before constructing a request — read it first, then write the call.

## Synopsis [#synopsis]

```sh
geni integration operation 4c21e1ee-4d54-4413-a4f2-80a80dff4c99
geni integration operation slack 4c21e1ee-4d54-4413-a4f2-80a80dff4c99
geni integration operation slack 4c21e1ee… --format markdown
geni integration operation slack 4c21e1ee… --json
```

| Arg / Flag       | Notes                                                        |
| ---------------- | ------------------------------------------------------------ |
| `<service>`      | Optional service slug. Lets you pass a friendlier id format. |
| `<opId>`         | Operation id from `geni integration operations`.             |
| `--format <fmt>` | `text` (default), `markdown`, `json`.                        |

## Output [#output]

```
slack · Send a Message
POST https://slack.com/api/chat.postMessage

Sends a message to a channel, DM, or group conversation as the authenticated user.

Required scopes: chat:write
Auth: Authorization: Bearer <accessToken>

Params:
  channel       string  required   Channel ID or name (#general, C0123, …)
  text          string  required   Message text (mrkdwn for formatting)
  thread_ts     string  optional   Reply in thread
  ...

Response:
  { ok: boolean, ts: string, channel: string, message: { ... } }

Bash env vars: $SLACK_ACCESS_TOKEN_<id>, $SLACK_BOT_TOKEN

Example:
  curl -s -X POST https://slack.com/api/chat.postMessage \
    -H "Authorization: Bearer $SLACK_ACCESS_TOKEN_<id>" \
    -H "Content-Type: application/json" \
    -d '{"channel": "#engineering", "text": "Hello"}'
```
