# st.reactToPost

This action allows you to react to a post using any available reaction type.

## Constraints

> ⏺️ **Root Start:** allowed, when `postUrl` parameter is provided.

> ⬆️ **Parent Actions:** [st.openPost](/docs/action-st-open-post), [st.doForPosts](/docs/action-st-do-for-posts).

> ⬇️ **Child Actions:** N/A.

## Parameters

```json
{
  "actionType": "st.reactToPost",
  "postUrl": "https://www.linkedin.com/posts/post1",
  "companyUrl": "https://www.linkedin.com/company/company1",
  "type": "like",
  "label": "post1"
}
```

- `postUrl` (required for root start, forbidden for parent start) – LinkedIn URL of the post.
- `type` – enum describing the reaction type.
  - `like` – standard "like".
  - `celebrate` – to celebrate an achievement.
  - `support` – to show support.
  - `love` – to express love or admiration.
  - `insightful` – to appreciate insightful content.
  - `funny` – to react to something humorous.
- `companyUrl` (optional) – LinkedIn company page URL. When provided, the reaction will be posted on behalf of the company. Requires content admin access to the company page.
- `label` (optional) – custom label for tracking this action in workflow completion.

## Result options

1. **Successful post reaction:**

```json
{
  "actionType": "st.reactToPost",
  "success": true,
  "label": "post1"
}
```

- `label` – included only if specified in the action parameters.

2. **Failed post reaction:**

```json
{
  "actionType": "st.reactToPost",
  "success": false,
  "label": "post1",
  "error": {
    "type": "postNotFound",
    "message": "The provided URL is not an existing LinkedIn post."
  }
}
```

- `label` – included only if specified in the action parameters.
- `error.type` – enum with the following possible values:
  - `postNotFound` – provided URL is not an existing LinkedIn post.
  - `noPostingPermission` – no permission to react on behalf of this company.
