---
title: "Actions: C"
description: "How to set up each action of the 17 apps starting with C."
label: "C"
generated: "the tool catalog in services/core/src/tool-catalog"
---


Apps starting with C. Add any of these from **Integrations → n8n → Add tools → Browse apps**; see [Set up an action](/build/set-up-actions) for each way a key is sent, and the [catalog index](/reference/actions) for every app.

## Chargebee

- **n8n node:** [Chargebee](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.chargebee/) (`n8n-nodes-base.chargebee`, version 1), 5 actions.
- **n8n performs it:** runs on the n8n credential *Chargebee API* ([how to set it up](https://docs.n8n.io/integrations/builtin/credentials/chargebee/)).
- **Veefore performs it:** 5 of 5 actions, with HTTP basic auth: username API key, password empty.
- **You enter:** API key.
- **API address:** `https://{site}.chargebee.com/api/v2`.
- **Get the key:** [chargebee.com](https://www.chargebee.com/docs/api_keys.html#creating-an-api-key)

**Chargebee in n8n**

| Action | Veefore calls | Fields to fill |
| --- | --- | --- |
| Create a customer | `POST /customers` | `site` |
| List an invoice | `GET /invoices` | `site` |
| Get URL for the invoice PDF | `POST /invoices/{invoiceId}/pdf` | `invoiceId`, `site` |
| Cancel a subscription | `POST /subscriptions/{subscriptionId}/cancel` | `subscriptionId`, `site` |
| Delete a subscription | `POST /subscriptions/{subscriptionId}/delete` | `subscriptionId`, `site` |

## CircleCI

- **n8n node:** [CircleCI](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.circleci/) (`n8n-nodes-base.circleCi`, version 1), 3 actions.
- **n8n performs it:** runs on the n8n credential *CircleCI API* ([how to set it up](https://docs.n8n.io/integrations/builtin/credentials/circleci/)).
- **Veefore performs it:** 3 of 3 actions, with the key in a header, as `Circle-Token: <key>`.
- **You enter:** Personal API token.
- **API address:** `https://circleci.com/api/v2`.
- **Get the key:** [app.circleci.com](https://app.circleci.com/settings/user/tokens)

**CircleCI in n8n**

| Action | Veefore calls | Fields to fill |
| --- | --- | --- |
| Get a pipeline | `GET /project/{vcs}/{slug}/pipeline/{pipelineNumber}` | `vcs`, `slug`, `pipelineNumber` |
| Get many pipelines | `GET /project/{vcs}/{slug}/pipeline` | `vcs`, `slug` |
| Trigger a pipeline | `POST /project/{vcs}/{slug}/pipeline` | `vcs`, `slug` |

## Clearbit

- **n8n node:** [Clearbit](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.clearbit/) (`n8n-nodes-base.clearbit`, version 1), 3 actions.
- **n8n performs it:** runs on the n8n credential *Clearbit API* ([how to set it up](https://docs.n8n.io/integrations/builtin/credentials/clearbit/)).
- **Veefore performs it:** 3 of 3 actions, with a bearer token, sent as `Authorization: Bearer <token>`.
- **You enter:** Token.
- **API address:** `https://person.clearbit.com`.
- **Get the key:** [dashboard.clearbit.com](https://dashboard.clearbit.com/api)

**Clearbit in n8n**

| Action | Veefore calls | Fields to fill |
| --- | --- | --- |
| Autocomplete a company | `GET /autocomplete` | `name` |
| Enrich a company | `GET /company-stream` | `domain` |
| Enrich a person | `GET /person-stream` | `email` |

## ClickUp

- **n8n node:** [ClickUp](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.clickup/) (`n8n-nodes-base.clickUp`, version 1), 57 actions.
- **n8n performs it:** runs on the n8n credential *ClickUp API* ([how to set it up](https://docs.n8n.io/integrations/builtin/credentials/clickup/)).
- **Veefore performs it:** 57 of 57 actions, with the key in a header, as `Authorization: <key>`.
- **You enter:** API key.
- **API address:** `https://api.clickup.com/api/v2`.
- **Get the key:** [clickup.com](https://clickup.com/api/developer-portal/authentication#personal-token)

**ClickUp in n8n**

| Action | Veefore calls | Fields to fill |
| --- | --- | --- |
| Create a checklist | `POST /task/{task}/checklist` | `task`, `name` |
| Delete a checklist | `DELETE /checklist/{checklist}` | `checklist` |
| Update a checklist | `PUT /checklist/{checklist}` | `checklist` |
| Create a checklist item | `POST /checklist/{checklist}/checklist_item` | `checklist`, `name` |
| Delete a checklist item | `DELETE /checklist/{checklist}/checklist_item/{checklistItem}` | `checklist`, `checklistItem` |
| Update a checklist item | `PUT /checklist/{checklist}/checklist_item/{checklistItem}` | `checklist`, `checklistItem` |
| Create a comment | `POST /{commentOn}/{id}/comment` | `id`, `commentOn` |
| Delete a comment | `DELETE /comment/{comment}` | `comment` |
| Get many comments | `GET /{commentsOn}/{id}/comment` | `id`, `commentsOn` |
| Update a comment | `PUT /comment/{comment}` | `comment` |
| Create a folder | `POST /space/{space}/folder` | `team`, `space`, `name` |
| Delete a folder | `DELETE /folder/{folder}` | `team`, `space`, `folder` |
| Get a folder | `GET /folder/{folder}` | `team`, `space`, `folder` |
| Get many folders | `GET /space/{space}/folder` | `team`, `space` |
| Update a folder | `PUT /folder/{folder}` | `team`, `space`, `folder` |
| Create a goal | `POST /team/{team}/goal` | `team`, `name` |
| Delete a goal | `DELETE /goal/{goal}` | `goal` |
| Get a goal | `GET /goal/{goal}` | `goal` |
| Get many goals | `GET /team/{team}/goal` | `team` |
| Update a goal | `PUT /goal/{goal}` | `goal` |
| Create a goal key result | `POST /goal/{goal}/key_result` | `goal`, `name`, `type` |
| Delete a goal key result | `DELETE /key_result/{keyResult}` | `keyResult` |
| Update a goal key result | `PUT /key_result/{keyResult}` | `keyResult` |
| Create a list | `POST /space/{space}/list` | `team`, `space`, `folderless`, `folder`, `name` |
| Get custom fields from a list | `GET /list/{list}/field` | `team`, `space`, `folderless`, `folder`, `list` |
| Delete a list | `DELETE /list/{list}` | `team`, `space`, `folderless`, `folder`, `list` |
| Get a list | `GET /list/{list}` | `team`, `space`, `folderless`, `folder`, `list` |
| Get many lists | `GET /folder/{folder}/list` | `team`, `space`, `folderless`, `folder` |
| Get list members | `GET /list/{id}/member` | `id` |
| Update a list | `PUT /list/{list}` | `team`, `space`, `folderless`, `folder`, `list` |
| Create a space tag | `POST /space/{space}/tag` | `space`, `name`, `foregroundColor`, `backgroundColor` |
| Delete a space tag | `DELETE /space/{space}/tag/{name}` | `space`, `name` |
| Get many space tags | `GET /space/{space}/tag` | `space` |
| Update a space tag | `PUT /space/{space}/tag/{name}` | `space`, `name`, `newName`, `foregroundColor`, `backgroundColor` |
| Create a task | `POST /list/{list}/task` | `team`, `space`, `folderless`, `folder`, `list`, `name` |
| Delete a task | `DELETE /task/{id}` | `id` |
| Get a task | `GET /task/{id}` | `id` |
| Get many tasks | `GET /list/{list}/task` | `team`, `space`, `folderless`, `folder`, `list` |
| Get task members | `GET /task/{id}/member` | `id` |
| Set a custom Field on a task | `POST /task/{task}/field/{field}` | `task`, `field`, `value` |
| Update a task | `PUT /task/{id}` | `id` |
| Create a task dependency | `POST /task/{task}/dependency` | `task`, `dependsOnTask` |
| Delete a task dependency | `DELETE /task/{task}/dependency` | `task`, `dependsOnTask` |
| Add a task to a list | `POST /list/{listId}/task/{taskId}` | `taskId`, `listId` |
| Remove a task from a list | `DELETE /list/{listId}/task/{taskId}` | `taskId`, `listId` |
| Add a task tag | `POST /task/{taskId}/tag/{tagName}` | `taskId`, `tagName` |
| Remove a task tag | `DELETE /task/{taskId}/tag/{tagName}` | `taskId`, `tagName` |
| Create a time entry | `POST /team/{team}/time_entries` | `team`, `space`, `folderless`, `folder`, `list`, `start` and 1 more |
| Delete a time entry | `DELETE /team/{team}/time_entries/{timeEntry}` | `team`, `timeEntry` |
| Get a time entry | `GET /team/{team}/time_entries/{timeEntry}` | `team`, `timeEntry` |
| Get many time entries | `GET /team/{team}/time_entries` | `team` |
| Start a time entry | `POST /team/{team}/time_entries/start` | `team`, `task` |
| Stop a time entry | `POST /team/{team}/time_entries/stop` | `team` |
| Update a time entry | `PUT /team/{team}/time_entries/{timeEntry}` | `team`, `space`, `folderless`, `folder`, `list`, `archived` and 1 more |
| Add a time entry tag | `POST /team/{team}/time_entries/tags` | `team`, `timeEntryIds` |
| Get many time entry tags | `GET /team/{team}/time_entries/tags` | `team` |
| Remove a time entry tag | `DELETE /team/{team}/time_entries/tags` | `team`, `timeEntryIds`, `tagNames` |

## Clockify

- **n8n node:** [Clockify](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.clockify/) (`n8n-nodes-base.clockify`, version 1), 25 actions.
- **n8n performs it:** runs on the n8n credential *Clockify API* ([how to set it up](https://docs.n8n.io/integrations/builtin/credentials/clockify/)).
- **Veefore performs it:** 25 of 25 actions, with the key in a header, as `X-Api-Key: <key>`.
- **You enter:** API key.
- **API address:** `https://api.clockify.me/api/v1`.
- **Get the key:** [app.clockify.me](https://app.clockify.me/user/preferences#advanced)

**Clockify in n8n**

| Action | Veefore calls | Fields to fill |
| --- | --- | --- |
| Create a client | `POST /workspaces/{workspaceId}/clients` | `workspaceId`, `name` |
| Delete a client | `DELETE /workspaces/{workspaceId}/clients/{clientId}` | `workspaceId`, `clientId` |
| Get a client | `GET /workspaces/{workspaceId}/clients/{clientId}` | `workspaceId`, `clientId` |
| Get many clients | `GET /workspaces/{workspaceId}/clients` | `workspaceId` |
| Update a client | `PUT /workspaces/{workspaceId}/clients/{clientId}` | `workspaceId`, `name`, `clientId` |
| Create a project | `POST /workspaces/{workspaceId}/projects` | `workspaceId`, `name` |
| Delete a project | `DELETE /workspaces/{workspaceId}/projects/{projectId}` | `workspaceId`, `projectId` |
| Get a project | `GET /workspaces/{workspaceId}/projects/{projectId}` | `workspaceId`, `projectId` |
| Get many projects | `GET /workspaces/{workspaceId}/projects` | `workspaceId` |
| Update a project | `PUT /workspaces/{workspaceId}/projects/{projectId}` | `workspaceId`, `projectId` |
| Create a tag | `POST /workspaces/{workspaceId}/tags` | `workspaceId`, `name` |
| Delete a tag | `DELETE /workspaces/{workspaceId}/tags/{tagId}` | `workspaceId`, `tagId` |
| Get many tags | `GET /workspaces/{workspaceId}/tags` | `workspaceId` |
| Update a tag | `PUT /workspaces/{workspaceId}/tags/{tagId}` | `workspaceId`, `tagId` |
| Create a task | `POST /workspaces/{workspaceId}/projects/{projectId}/tasks` | `workspaceId`, `projectId`, `name` |
| Delete a task | `DELETE /workspaces/{workspaceId}/projects/{projectId}/tasks/{taskId}` | `workspaceId`, `projectId`, `taskId` |
| Get a task | `GET /workspaces/{workspaceId}/projects/{projectId}/tasks/{taskId}` | `workspaceId`, `projectId`, `taskId` |
| Get many tasks | `GET /workspaces/{workspaceId}/projects/{projectId}/tasks` | `workspaceId`, `projectId` |
| Update a task | `PUT /workspaces/{workspaceId}/projects/{projectId}/tasks/{taskId}` | `workspaceId`, `projectId`, `taskId` |
| Create a time entry | `POST /workspaces/{workspaceId}/time-entries` | `workspaceId`, `start` |
| Delete a time entry | `DELETE /workspaces/{workspaceId}/time-entries/{timeEntryId}` | `workspaceId`, `timeEntryId` |
| Get a time entry | `GET /workspaces/{workspaceId}/time-entries/{timeEntryId}` | `workspaceId`, `timeEntryId` |
| Update a time entry | `PUT /workspaces/{workspaceId}/time-entries/{timeEntryId}` | `workspaceId`, `timeEntryId` |
| Get many users | `GET /workspaces/{workspaceId}/users` | `workspaceId` |
| Get many workspaces | `GET /workspaces` | — |

## Cloudflare

- **n8n node:** [Cloudflare](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.cloudflare/) (`n8n-nodes-base.cloudflare`, version 1), 4 actions.
- **n8n performs it:** runs on the n8n credential *Cloudflare API* ([how to set it up](https://docs.n8n.io/integrations/builtin/credentials/cloudflare/)).
- **Veefore performs it:** 4 of 4 actions, with a bearer token, sent as `Authorization: Bearer <token>`.
- **You enter:** Token.
- **API address:** `https://api.cloudflare.com/client/v4`.
- **Get the key:** [developers.cloudflare.com](https://developers.cloudflare.com/fundamentals/setup/account/)

**Cloudflare in n8n**

| Action | Veefore calls | Fields to fill |
| --- | --- | --- |
| Delete a certificate | `DELETE /zones/{zoneId}/origin_tls_client_auth/{certificateId}` | `zoneId`, `certificateId` |
| Get a certificate | `GET /zones/{zoneId}/origin_tls_client_auth/{certificateId}` | `zoneId`, `certificateId` |
| Get many certificates | `GET /zones/{zoneId}/origin_tls_client_auth` | `zoneId` |
| Upload a certificate | `POST /zones/{zoneId}/origin_tls_client_auth` | `zoneId`, `certificate`, `privateKey` |

## Cockpit

- **n8n node:** [Cockpit](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.cockpit/) (`n8n-nodes-base.cockpit`, version 1), 5 actions.
- **n8n performs it:** runs on the n8n credential *Cockpit API* ([how to set it up](https://docs.n8n.io/integrations/builtin/credentials/cockpit/)).
- **Veefore performs it:** 5 of 5 actions, with the key in the query string, as `?token=<key>`.
- **You enter:** API token.
- **API address:** `https://{url}/api`.

**Cockpit in n8n**

| Action | Veefore calls | Fields to fill |
| --- | --- | --- |
| Create a collection entry | `POST /collections/save/{collection}` | `collection`, `url` |
| Get many collection entries | `POST /collections/get/{collection}` | `collection`, `url` |
| Update a collection entry | `POST /collections/save/{collection}` | `collection`, `id`, `url` |
| Submit a form | `POST /forms/submit/{form}` | `form`, `url` |
| Get a singleton | `GET /singletons/get/{singleton}` | `singleton`, `url` |

## Coda

- **n8n node:** [Coda](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.coda/) (`n8n-nodes-base.coda`, version 1.1), 18 actions.
- **n8n performs it:** runs on the n8n credential *Coda API* ([how to set it up](https://docs.n8n.io/integrations/builtin/credentials/coda/)).
- **Veefore performs it:** 18 of 18 actions, with a bearer token, sent as `Authorization: Bearer <token>`.
- **You enter:** API token.
- **API address:** `https://coda.io/apis/v1`.
- **Get the key:** [coda.io](https://coda.io/account#apiSettings)

**Coda in n8n**

| Action | Veefore calls | Fields to fill |
| --- | --- | --- |
| Get a control | `GET /docs/{docId}/controls/{controlId}` | `docId`, `controlId` |
| Get many controls | `GET /docs/{docId}/controls` | `docId` |
| Get a formula | `GET /docs/{docId}/formulas/{formulaId}` | `docId`, `formulaId` |
| Get many formulas | `GET /docs/{docId}/formulas` | `docId` |
| Create a row | `POST /docs/{docId}/tables/{tableId}/rows` | `docId`, `tableId` |
| Delete a row | `DELETE /docs/{docId}/tables/{tableId}/rows` | `docId`, `tableId`, `rowId` |
| Get all columns | `GET /docs/{docId}/tables/{tableId}/columns` | `docId`, `tableId` |
| Get all rows | `GET /docs/{docId}/tables/{tableId}/rows` | `docId`, `tableId` |
| Get a column | `GET /docs/{docId}/tables/{tableId}/columns/{columnId}` | `docId`, `tableId`, `columnId` |
| Get a row | `GET /docs/{docId}/tables/{tableId}/rows/{rowId}` | `docId`, `tableId`, `rowId` |
| Push a button | `POST /docs/{docId}/tables/{tableId}/rows/{rowId}/buttons/{columnId}` | `docId`, `tableId`, `rowId`, `columnId` |
| Delete a view row | `DELETE /docs/{docId}/tables/{viewId}/rows/{rowId}` | `docId`, `viewId`, `rowId` |
| Get a view | `GET /docs/{docId}/tables/{viewId}` | `docId`, `viewId` |
| Get all view columns | `GET /docs/{docId}/tables/{viewId}/columns` | `docId`, `viewId` |
| Get many views | `GET /docs/{docId}/tables?tableTypes=view` | `docId` |
| Get a view row | `GET /docs/{docId}/tables/{viewId}/rows` | `docId`, `viewId` |
| Push a view button | `POST /docs/{docId}/tables/{viewId}/rows/{rowId}/buttons/{columnId}` | `docId`, `viewId`, `rowId`, `columnId` |
| Update a view row | `PUT /docs/{docId}/tables/{viewId}/rows/{rowId}` | `docId`, `viewId`, `rowId`, `keyName` |

## Confluence

- **n8n node:** [Confluence](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.confluence/) (`n8n-nodes-base.confluence`, version 1), 18 actions.
- **n8n performs it:** runs on the n8n credential *Confluence Cloud OAuth2 API* ([how to set it up](https://docs.n8n.io/integrations/builtin/credentials/confluence/)).
- **Veefore performs it:** 18 of 18 actions, with OAuth 2.0 with a refresh token; Veefore renews access tokens at `https://auth.atlassian.com/oauth/token` (scope `read:page:confluence write:page:confluence read:hierarchical-content:confluence read:space:confluence read:attachment:confluence read:comment:confluence read:label:confluence read:content-details:confluence write:attachment:confluence delete:attachment:confluence write:comment:confluence delete:comment:confluence write:label:confluence delete:page:confluence offline_access`).
- **You enter:** OAuth client ID, Client secret, Refresh token.
- **API address:** `https://{domain}.atlassian.net/wiki`.
- **Get the key:** [developer.atlassian.com](https://developer.atlassian.com/console/myapps/)

**Confluence in n8n**

| Action | Veefore calls | Fields to fill |
| --- | --- | --- |
| Delete an attachment | `DELETE /api/v2/attachments/{attachmentId}` | `attachmentId`, `domain` |
| Get many attachments | `GET /api/v2/pages/{pageId}/attachments` | `page`, `domain`, `pageId` |
| Upload an attachment | `GET /api/v2/pages` | `page`, `binaryPropertyName`, `domain` |
| Add a comment to a page | `POST /api/v2/footer-comments` | `page`, `domain` |
| Add labels to a page | `POST /rest/api/content/{pageId}/label` | `page`, `labels`, `domain`, `pageId` |
| Append content to a page | `GET /api/v2/pages` | `page`, `domain` |
| Create a page | `POST /api/v2/pages` | `space`, `title`, `domain` |
| Delete a page | `DELETE /api/v2/pages/{pageId}` | `page`, `domain`, `pageId` |
| Delete a comment | `DELETE /api/v2/footer-comments/{commentId}` | `commentId`, `domain` |
| Get a page | `GET /api/v2/pages/{nodeId}/descendants` | `page`, `domain`, `nodeId` |
| Get comments on a page | `GET /api/v2/pages/{pageId}/footer-comments` | `page`, `domain`, `pageId` |
| Get page labels | `GET /api/v2/pages/{pageId}/labels` | `page`, `domain`, `pageId` |
| Get many pages by label | `GET /api/v2/labels/{labelId}/pages` | `label`, `domain`, `labelId` |
| Remove a label from a page | `DELETE /rest/api/content/{pageId}/label` | `page`, `labelName`, `domain`, `pageId` |
| Update a page | `GET /api/v2/pages` | `page`, `domain` |
| Perform a query | `GET /rest/api/search` | `cql`, `domain` |
| Get a space | `GET /api/v2/spaces/{spaceId}` | `space`, `domain`, `spaceId` |
| Get many spaces | `GET /api/v2/spaces` | `domain` |

## Contentful

- **n8n node:** [Contentful](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.contentful/) (`n8n-nodes-base.contentful`, version 1), 7 actions.
- **n8n performs it:** runs on the n8n credential *Contentful API* ([how to set it up](https://docs.n8n.io/integrations/builtin/credentials/contentful/)).
- **Veefore performs it:** 7 of 7 actions, with the key in the query string, as `?access_token=<key>`.
- **You enter:** Content Delivery API token.
- **API address:** `https://cdn.contentful.com`.
- **Get the key:** [app.contentful.com](https://app.contentful.com/account/profile/cma_tokens)

**Contentful in n8n**

| Action | Veefore calls | Fields to fill |
| --- | --- | --- |
| Get asset | `GET /spaces/{spaceId}/environments/{environmentId}/assets/{assetId}` | `assetId`, `spaceId`, `environmentId` |
| Get Many asset | `GET /spaces/{spaceId}/environments/{environmentId}/assets` | `spaceId`, `environmentId` |
| Get contentType | `GET /spaces/{spaceId}/environments/{environmentId}/content_types/{contentTypeId}` | `contentTypeId`, `spaceId`, `environmentId` |
| Get entry | `GET /spaces/{spaceId}/environments/{environmentId}/entries/{entryId}` | `entryId`, `spaceId`, `environmentId` |
| Get Many entry | `GET /spaces/{spaceId}/environments/{environmentId}/entries` | `spaceId`, `environmentId` |
| Get Many locale | `GET /spaces/{spaceId}/environments/{environmentId}/locales` | `spaceId`, `environmentId` |
| Get space | `GET /spaces/{spaceId}` | `spaceId` |

## ConvertKit

- **n8n node:** [ConvertKit](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.convertkit/) (`n8n-nodes-base.convertKit`, version 1), 15 actions.
- **n8n performs it:** runs on the n8n credential *ConvertKit API* ([how to set it up](https://docs.n8n.io/integrations/builtin/credentials/convertkit/)).
- **Veefore performs it:** 15 of 15 actions, with the key in the query string, as `?api_secret=<key>`.
- **You enter:** API secret.
- **API address:** `https://api.convertkit.com/v3`.
- **Get the key:** [app.convertkit.com](https://app.convertkit.com/account_settings/advanced_settings)

**ConvertKit in n8n**

| Action | Veefore calls | Fields to fill |
| --- | --- | --- |
| Create a custom field | `POST /custom_fields` | `label` |
| Delete a custom field | `DELETE /custom_fields/{id}` | `id` |
| Get many custom fields | `GET /custom_fields` | — |
| Update a custom field | `PUT /custom_fields/{id}` | `id`, `label` |
| Add a subscriber | `POST /forms/{id}/subscribe` | `id`, `email` |
| Get many forms | `GET /forms` | — |
| Get all subscriptions | `GET /forms/{id}/subscriptions` | `id` |
| Add a subscriber | `POST /sequences/{id}/subscribe` | `id`, `email` |
| Get many sequences | `GET /sequences` | — |
| Get all subscriptions to a sequence | `GET /sequences/{id}/subscriptions` | `id` |
| Create a tag | `POST /tags` | `name` |
| Get many tags | `GET /tags` | — |
| Add a tag to a subscriber | `POST /tags/{tagId}/subscribe` | `tagId`, `email` |
| Get many tag subscriptions | `GET /tags/{tagId}/subscriptions` | `tagId` |
| Delete a tag from a subscriber | `POST /tags/{tagId}>/unsubscribe` | `tagId`, `email` |

## Copper

- **n8n node:** [Copper](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.copper/) (`n8n-nodes-base.copper`, version 1), 32 actions.
- **n8n performs it:** runs on the n8n credential *Copper API* ([how to set it up](https://docs.n8n.io/integrations/builtin/credentials/copper/)).
- **Veefore performs it:** 32 of 32 actions, with the key in a header, as `X-PW-AccessToken: <key>`.
- **You enter:** API key, Email.
- **Also sent:** `developer_api` in the `X-PW-Application` header (fixed); Email in the `X-PW-UserEmail` header.
- **API address:** `https://api.copper.com/developer_api/v1`.
- **Get the key:** [support.copper.com](https://support.copper.com/en/articles/8823347-generating-an-api-key)

**Copper in n8n**

| Action | Veefore calls | Fields to fill |
| --- | --- | --- |
| Create a company | `POST /companies` | `name` |
| Delete a company | `DELETE /companies/{companyId}` | `companyId` |
| Get a company | `GET /companies/{companyId}` | `companyId` |
| Get many companies | `POST /companies/search` | — |
| Update a company | `PUT /companies/{companyId}` | `companyId` |
| Get many customer sources | `GET /customer_sources` | — |
| Create a lead | `POST /leads` | `name` |
| Delete a lead | `DELETE /leads/{leadId}` | `leadId` |
| Get a lead | `GET /leads/{leadId}` | `leadId` |
| Get many leads | `POST /leads/search` | — |
| Update a lead | `PUT /leads/{leadId}` | `leadId` |
| Create an opportunity | `POST /opportunities` | `name` |
| Delete an opportunity | `DELETE /opportunities/{opportunityId}` | `opportunityId` |
| Get an opportunity | `GET /opportunities/{opportunityId}` | `opportunityId` |
| Get many opportunities | `POST /opportunities/search` | — |
| Update an opportunity | `PUT /opportunities/{opportunityId}` | `opportunityId` |
| Create a person | `POST /people` | `name` |
| Delete a person | `DELETE /people/{personId}` | `personId` |
| Get a person | `GET /people/{personId}` | `personId` |
| Get many people | `POST /people/search` | — |
| Update a person | `PUT /people/{personId}` | `personId` |
| Create a project | `POST /projects` | `name` |
| Delete a project | `DELETE /projects/{projectId}` | `projectId` |
| Get a project | `GET /projects/{projectId}` | `projectId` |
| Get many projects | `POST /projects/search` | — |
| Update a project | `PUT /projects/{projectId}` | `projectId` |
| Create a task | `POST /tasks` | `name` |
| Delete a task | `DELETE /tasks/{taskId}` | `taskId` |
| Get a task | `GET /tasks/{taskId}` | `taskId` |
| Get many tasks | `POST /tasks/search` | — |
| Update a task | `PUT /tasks/{taskId}` | `taskId` |
| Get many users | `POST /users/search` | — |

## Cortex

- **n8n node:** [Cortex](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.cortex/) (`n8n-nodes-base.cortex`, version 1), 4 actions.
- **n8n performs it:** runs on the n8n credential *Cortex API* ([how to set it up](https://docs.n8n.io/integrations/builtin/credentials/cortex/)).
- **Veefore performs it:** 4 of 4 actions, with a bearer token, sent as `Authorization: Bearer <token>`.
- **You enter:** Token.
- **API address:** `https://{host}/api`.
- **Get the key:** [app.getcortexapp.com](https://app.getcortexapp.com/admin/settings/api-keys)

**Cortex in n8n**

| Action | Veefore calls | Fields to fill |
| --- | --- | --- |
| Execute an analyzer | `GET /job/{id}/waitreport` | `analyzer`, `host`, `id` |
| Get a job | `GET /job/{jobId}` | `jobId`, `host` |
| Get a job report | `GET /job/{jobId}/report` | `jobId`, `host` |
| Execute a responder | `POST /responder/{responderId}/run` | `responder`, `entityType`, `host`, `responderId` |

## CrateDB

- **n8n node:** [CrateDB](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.cratedb/) (`n8n-nodes-base.crateDb`, version 1.1), 3 actions.
- **n8n performs it:** runs on the n8n credential *CrateDB* ([how to set it up](https://docs.n8n.io/integrations/builtin/credentials/cratedb/)).
- **Veefore performs it:** not available. CrateDB is not a web API (a database, queue, file transfer or local step), so only n8n can perform it.

**CrateDB in n8n**

| Action | Veefore calls | Fields to fill |
| --- | --- | --- |
| Execute a SQL query | n8n performs it | `query` |
| Insert rows in database | n8n performs it | `schema`, `table` |
| Update rows in database | n8n performs it | `schema`, `table`, `updateKey` |

## Crypto

- **n8n node:** [Crypto](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.crypto/) (`n8n-nodes-base.crypto`, version 2), 1 action.
- **n8n performs it:** runs on the n8n credential *Crypto* ([how to set it up](https://docs.n8n.io/integrations/builtin/credentials/crypto/)).
- **Veefore performs it:** not available. Crypto is not a web API (a database, queue, file transfer or local step), so only n8n can perform it.

**Crypto in n8n**

| Action | Veefore calls | Fields to fill |
| --- | --- | --- |
| Crypto | n8n performs it | `binaryData`, `type`, `value`, `dataPropertyName`, `encoding` |

## Currents

- **n8n node:** [Currents](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.currents/) (`n8n-nodes-base.currents`, version 1), 22 actions.
- **n8n performs it:** runs on the n8n credential *Currents API* ([how to set it up](https://docs.currents.dev/api)).
- **Veefore performs it:** 22 of 22 actions, with a bearer token, sent as `Authorization: Bearer <token>`.
- **You enter:** Token.
- **API address:** `https://api.currents.dev/v1`.
- **Get the key:** [app.currents.dev](https://app.currents.dev/)

**Currents in n8n**

| Action | Veefore calls | Fields to fill |
| --- | --- | --- |
| Create an action | `POST /actions` | `projectId`, `name`, `actionType`, `matcherType`, `matcherValue` |
| Delete an action | `DELETE /actions/{actionId}` | `actionId` |
| Disable an action | `PUT /actions/{actionId}/disable` | `actionId` |
| Enable an action | `PUT /actions/{actionId}/enable` | `actionId` |
| Get an action | `GET /actions/{actionId}` | `actionId` |
| Get many actions | `GET /actions` | `projectId` |
| Update an action | `PUT /actions/{actionId}` | `actionId` |
| Get an instance | `GET /instances/{instanceId}` | `instanceId` |
| Get a project | `GET /projects/{projectId}` | `projectId` |
| Get many projects | `GET /projects` | — |
| Get project insights | `GET /projects/{projectId}/insights` | `projectId`, `dateStart`, `dateEnd` |
| Cancel a run | `PUT /runs/{runId}/cancel` | `runId` |
| Cancel a run by GitHub CI | `PUT /runs/cancel-ci/github` | `githubRunId`, `githubRunAttempt` |
| Delete a run | `DELETE /runs/{runId}` | `runId` |
| Find a run | `GET /runs/find` | `projectId` |
| Get a run | `GET /runs/{runId}` | `runId` |
| Get many runs | `GET /projects/{projectId}/runs` | `projectId` |
| Reset a run | `PUT /runs/{runId}/reset` | `runId`, `machineIds` |
| Generate a signature | `POST /signature/test` | `projectId`, `specFilePath`, `testTitle` |
| Get many spec files | `GET /spec-files/{projectId}` | `projectId`, `dateStart`, `dateEnd` |
| Get many tests | `GET /tests/{projectId}` | `projectId`, `dateStart`, `dateEnd` |
| Get test results | `GET /test-results/{signature}` | `signature`, `dateStart`, `dateEnd` |

## Customer.io

- **n8n node:** [Customer.io](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.customerio/) (`n8n-nodes-base.customerIo`, version 1), 9 actions.
- **n8n performs it:** runs on the n8n credential *Customer.io API* ([how to set it up](https://docs.n8n.io/integrations/builtin/credentials/customerio/)).
- **Veefore performs it:** 9 of 9 actions, with HTTP basic auth: username Tracking site ID, password Tracking API key.
- **You enter:** Tracking site ID, Tracking API key.
- **API address:** `https://track.customer.io/api/v1`.
- **Get the key:** [customer.io](https://customer.io/docs/accounts-and-workspaces/managing-credentials/)

**Customer.io in n8n**

| Action | Veefore calls | Fields to fill |
| --- | --- | --- |
| Create or update a customer | `PUT /customers/{id}` | `id` |
| Delete a customer | `DELETE /customers/{id}` | `id` |
| Track a customer event | `POST /customers/{customerId}/events` | `customerId` |
| Track an anonymous event | `POST /events` | `eventName` |
| Get a campaign | `GET /campaigns/{campaignId}` | `campaignId` |
| Get many campaigns | `GET /campaigns` | — |
| Get metrics for a campaign | `GET /{endpoint}?period={period}` | `campaignId`, `endpoint`, `period` |
| Add a customer to a segment | `POST /segments/{segmentId}/add_customers` | `segmentId`, `customerIds` |
| Remove a customer from a segment | `POST /segments/{segmentId}/remove_customers` | `segmentId`, `customerIds` |
