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

# Integration Node

> Call an external system as a workflow step — the integration handler class and its process object

An integration node (`"type": "integration"`) calls out to an external system. It has a single handler class, `integration`, and its `process` is an **action reference** — it names the action to run rather than carrying its configuration inline.

Use this page when building `nodes` for [Create a Workflow](/api-reference/v1-workflow-generation/create-workflow) or [Update a Workflow](/api-reference/v1-workflow-generation/update-workflow).

## Process Fields

<ParamField body="name" type="string" required>
  The action to run — what this step does on the external system, such as `Send Message` or `Create Row`.
</ParamField>

<ParamField body="description" type="string">
  What the action does.
</ParamField>

<ParamField body="integration" type="object" required>
  The integration the action belongs to.

  <Expandable title="Integration object">
    <ParamField body="name" type="string" required>
      Integration display name
    </ParamField>

    <ParamField body="description" type="string">
      What the integration connects to
    </ParamField>

    <ParamField body="icon" type="string">
      Integration icon
    </ParamField>

    <ParamField body="provider" type="object" required>
      The vendor or system behind the integration.

      <Expandable title="Provider object">
        <ParamField body="name" type="string" required>
          Provider display name — for example `Slack`, `Google`
        </ParamField>

        <ParamField body="description" type="string">
          What the provider is
        </ParamField>

        <ParamField body="icon" type="string">
          Provider icon
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

The nesting mirrors how integrations are organised in Opus: a **provider** is the vendor, an **integration** is a connection to it, and an **action** is one operation on that integration.

## Example

```json integration node theme={null}
{
  "id": "{NODE_ID}",
  "name": "Post To Slack",
  "type": "integration",
  "handler_class": "integration",
  "process": {
    "name": "Send Message",
    "description": "Post a message to a channel",
    "integration": {
      "name": "Slack",
      "description": "Team messaging",
      "provider": {
        "name": "Slack",
        "description": "Slack Technologies"
      }
    }
  }
}
```

<Note>
  Credentials are never part of the node. They are attached to the integration itself — see [Create a Credential](/api-reference/v1-integration/create-credential).
</Note>

## Related

<CardGroup cols={2}>
  <Card title="Integrations API" icon="plug" href="/api-reference/v1-integration/integration-introduction">
    Create providers, integrations and credentials through the API
  </Card>

  <Card title="Integrations Marketplace" icon="store" href="/integrations/overview">
    Pre-built connectors available in Opus
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.