Built-in Integrations
Slack, GitHub, Notion, and Gmail nodes for workflow automation.
Built-in Integrations
Linea ships four integration node types that connect directly to external services without any custom HTTP configuration. Each integration resolves its credentials from a named workspace secret stored in the encrypted secrets table.
Secrets are stored AES-256-GCM encrypted. Store them via the Secrets settings page or the API. The integration executor retrieves the value at runtime — the raw token is never logged.
Secret Resolution
Each integration looks up a fixed secret name from the workspace:
| Integration | Secret name |
|---|---|
| Slack | SLACK_TOKEN |
| GitHub | GITHUB_TOKEN |
| Notion | NOTION_TOKEN |
| Gmail | GMAIL_TOKEN |
Slack
Node type: slack
Communicates with the Slack Web API using a Bot Token (xoxb-…).
Actions
action | Required fields | Description |
|---|---|---|
send_message | channel, message | Post to a channel (e.g. #general or channel ID) |
send_dm | userId, message | Open a DM and send a direct message |
list_channels | — | Returns { channels: [{ id, name }] } |
Optional fields (send_message)
username— override the bot display nameiconEmoji— e.g.:robot_face:
Output
GitHub
Node type: github
Authenticates with a Personal Access Token or GitHub App token.
Required fields
All actions require owner (org or user) and repo.
Actions
action | Additional fields | Description |
|---|---|---|
create_issue | title, body?, labels? | Open a new issue. labels is comma-separated. |
comment_issue | issueNumber, body | Add a comment to an existing issue |
list_issues | — | Returns up to 50 open issues |
create_pr | title, head, base, body? | Open a pull request |
Output (create_issue)
Notion
Node type: notion
Uses the Notion API v1 with an internal integration token.
Actions
action | Required fields | Description |
|---|---|---|
create_page | databaseId | Create a page in a database. Optional: title, content. |
append_block | pageId, content | Append a paragraph block to an existing page |
query_database | databaseId | Query with optional filter (JSON Notion filter object) |
get_page | pageId | Fetch page metadata and properties |
Output (create_page)
Gmail
Node type: gmail
Uses the Gmail REST API with an OAuth2 access token (scope: gmail.send and/or gmail.readonly).
Actions
action | Required fields | Description |
|---|---|---|
send_email | to, subject, body | Send an RFC 2822 plain-text email. Optional: cc, bcc. |
list_emails | — | List messages. Optional: query (Gmail search syntax), maxResults (default 10). |
get_email | messageId | Fetch subject, from, date, and snippet for a message |
Output (send_email)
Gmail requires a short-lived OAuth2 access token, not a static API key. Use a service account or a token refresh flow outside Linea to keep GMAIL_TOKEN current.
Adding integrations to a workflow
- Open the visual builder for a workflow.
- In the Node Library panel, expand the Integrations category.
- Drag the desired node onto the canvas.
- In the configuration panel, select an action and fill in the required fields.
- Variable chips (
{{variable}}syntax) are supported in all text fields via substitution.