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


Apps starting with A. 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.

## Action Network

- **n8n node:** [Action Network](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.actionnetwork/) (`n8n-nodes-base.actionNetwork`, version 1), 23 actions.
- **n8n performs it:** runs on the n8n credential *Action Network API* ([how to set it up](https://docs.n8n.io/integrations/builtin/credentials/actionnetwork/)).
- **Veefore performs it:** 23 of 23 actions, with the key in a header, as `OSDI-API-Token: <key>`.
- **You enter:** API key.
- **API address:** `https://actionnetwork.org/api/v2`.
- **Get the key:** [actionnetwork.org](https://actionnetwork.org/groups)

**Action Network in n8n**

| Action | Veefore calls | Fields to fill |
| --- | --- | --- |
| Create an attendance | `POST /events/{eventId}/attendances` | `personId`, `eventId` |
| Get an attendance | `GET /events/{eventId}/attendances/{attendanceId}` | `eventId`, `attendanceId` |
| Get many attendances | `GET /events/{eventId}/attendances` | `eventId` |
| Create an event | `POST /events` | `originSystem`, `title` |
| Get an event | `GET /events/{eventId}` | `eventId` |
| Get many events | `GET /events` | — |
| Create a person | `POST /people` | — |
| Get a person | `GET /people/{personId}` | `personId` |
| Get many people | `GET /people` | — |
| Update a person | `PUT /people/{personId}` | `personId` |
| Add a person tag | `POST /tags/{tagId}/taggings` | `tagId`, `personId` |
| Remove a person tag | `DELETE /tags/{tagId}/taggings/{taggingId}` | `tagId`, `taggingId` |
| Create a petition | `POST /petitions` | `originSystem`, `title` |
| Get a petition | `GET /petitions/{petitionId}` | `petitionId` |
| Get many petitions | `GET /petitions` | — |
| Update a petition | `PUT /petitions/{petitionId}` | `petitionId` |
| Create a signature | `POST /petitions/{petitionId}/signatures` | `petitionId`, `personId` |
| Get a signature | `GET /petitions/{petitionId}/signatures/{signatureId}` | `petitionId`, `signatureId` |
| Get many signatures | `GET /petitions/{petitionId}/signatures` | `petitionId` |
| Update a signature | `PUT /petitions/{petitionId}/signatures/{signatureId}` | `petitionId`, `signatureId` |
| Create a tag | `POST /tags` | `name` |
| Get a tag | `GET /tags/{tagId}` | `tagId` |
| Get many tags | `GET /tags` | — |

## ActiveCampaign

- **n8n node:** [ActiveCampaign](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.activecampaign/) (`n8n-nodes-base.activeCampaign`, version 1), 48 actions.
- **n8n performs it:** runs on the n8n credential *ActiveCampaign API* ([how to set it up](https://docs.n8n.io/integrations/builtin/credentials/activecampaign/)).
- **Veefore performs it:** 48 of 48 actions, with the key in a header, as `Api-Token: <key>`.
- **You enter:** API key.
- **API address:** `https://{apiUrl}`.
- **Get the key:** [activecampaign.com](https://www.activecampaign.com/login)

**ActiveCampaign in n8n**

| Action | Veefore calls | Fields to fill |
| --- | --- | --- |
| Create an account | `POST /api/3/accounts` | `name`, `apiUrl` |
| Delete an account | `DELETE /api/3/accounts/{accountId}` | `accountId`, `apiUrl` |
| Get an account | `GET /api/3/accounts/{accountId}` | `accountId`, `apiUrl` |
| Get many accounts | `GET /api/3/accounts` | `apiUrl` |
| Update an account | `PUT /api/3/accounts/{accountId}` | `accountId`, `apiUrl` |
| Create an account contact | `POST /api/3/accountContacts` | `account`, `contact`, `apiUrl` |
| Delete an account contact | `DELETE /api/3/accountContacts/{accountContactId}` | `accountContactId`, `apiUrl` |
| Update an account contact | `PUT /api/3/accountContacts/{accountContactId}` | `accountContactId`, `apiUrl` |
| Create a connection | `POST /api/3/connections` | `service`, `externalid`, `name`, `logoUrl`, `linkUrl`, `apiUrl` |
| Delete a connection | `DELETE /api/3/connections/{connectionId}` | `connectionId`, `apiUrl` |
| Get a connection | `GET /api/3/connections/{connectionId}` | `connectionId`, `apiUrl` |
| Get many connections | `GET /api/3/connections` | `apiUrl` |
| Update a connection | `PUT /api/3/connections/{connectionId}` | `connectionId`, `apiUrl` |
| Create a contact | `GET /api/3/contact/sync` | `email`, `apiUrl` |
| Delete a contact | `DELETE /api/3/contacts/{contactId}` | `contactId`, `apiUrl` |
| Get a contact | `GET /api/3/contacts/{contactId}` | `contactId`, `apiUrl` |
| Get many contacts | `GET /api/3/contacts` | `apiUrl` |
| Update a contact | `PUT /api/3/contacts/{contactId}` | `contactId`, `apiUrl` |
| Add a contact to a list | `POST /api/3/contactLists` | `listId`, `contactId`, `apiUrl` |
| Remove a contact from a list | `POST /api/3/contactLists` | `listId`, `contactId`, `apiUrl` |
| Add a contact tag | `POST /api/3/contactTags` | `tagId`, `contactId`, `apiUrl` |
| Remove a contact tag | `DELETE /api/3/contactTags/{contactTagId}` | `contactTagId`, `apiUrl` |
| Create a deal | `POST /api/3/deals` | `title`, `contact`, `value`, `currency`, `apiUrl` |
| Create a deal note | `POST /api/3/deals/{dealId}/notes` | `dealId`, `dealNote`, `apiUrl` |
| Delete a deal | `DELETE /api/3/deals/{dealId}` | `dealId`, `apiUrl` |
| Get a deal | `GET /api/3/deals/{dealId}` | `dealId`, `apiUrl` |
| Get many deals | `GET /api/3/deals` | `apiUrl` |
| Update a deal | `PUT /api/3/deals/{dealId}` | `dealId`, `apiUrl` |
| Update a deal note | `PUT /api/3/deals/{dealId}/notes/{dealNoteId}` | `dealId`, `dealNoteId`, `apiUrl` |
| Create an e-commerce customer | `POST /api/3/ecomCustomers` | `connectionid`, `externalid`, `email`, `apiUrl` |
| Delete an e-commerce customer | `DELETE /api/3/ecomCustomers/{ecommerceCustomerId}` | `ecommerceCustomerId`, `apiUrl` |
| Get an e-commerce customer | `GET /api/3/ecomCustomers/{ecommerceCustomerId}` | `ecommerceCustomerId`, `apiUrl` |
| Get many e-commerce customers | `GET /api/3/ecomCustomers` | `apiUrl` |
| Update an e-commerce customer | `PUT /api/3/ecomCustomers/{ecommerceCustomerId}` | `ecommerceCustomerId`, `apiUrl` |
| Create an e-commerce order | `POST /api/3/ecomOrders` | `source`, `email`, `totalPrice`, `currency`, `connectionid`, `customerid` and 2 more |
| Delete an e-commerce order | `DELETE /api/3/ecomOrders/{orderId}` | `apiUrl`, `orderId` |
| Get an e-commerce order | `GET /api/3/ecomOrders/{orderId}` | `apiUrl`, `orderId` |
| Get many e-commerce orders | `GET /api/3/ecomOrders` | `apiUrl` |
| Update an e-commerce order | `PUT /api/3/ecomOrders/{orderId}` | `apiUrl`, `orderId` |
| Get many ecommerce orders | `GET /api/3/ecomOrderProducts` | `apiUrl` |
| Get an e-commerce order product by product ID | `GET /api/3/ecomOrderProducts/{procuctId}` | `apiUrl`, `procuctId` |
| Get an e-commerce order product by order ID | `GET /api/3/ecomOrders/{orderId}/orderProducts` | `apiUrl`, `orderId` |
| Get many lists | `GET /api/3/lists` | `apiUrl` |
| Create a tag | `POST /api/3/tags` | `tagType`, `name`, `apiUrl` |
| Delete a tag | `DELETE /api/3/tags/{tagId}` | `tagId`, `apiUrl` |
| Get a tag | `GET /api/3/tags/{tagId}` | `tagId`, `apiUrl` |
| Get many tags | `GET /api/3/tags` | `apiUrl` |
| Update a tag | `PUT /api/3/tags/{tagId}` | `tagId`, `apiUrl` |

## Adalo

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

**Adalo in n8n**

| Action | Veefore calls | Fields to fill |
| --- | --- | --- |
| Create a row | `POST /collections/{collectionId}` | `collectionId`, `appId` |
| Delete a row | `DELETE /collections/{collectionId}/{rowId}` | `collectionId`, `rowId`, `appId` |
| Retrieve a row | `GET /collections/{collectionId}/{rowId}` | `collectionId`, `rowId`, `appId` |
| Retrieve all rows | `GET /collections/{collectionId}` | `collectionId`, `appId` |
| Update a row | `PUT /collections/{collectionId}/{rowId}` | `collectionId`, `rowId`, `appId` |

## Affinity

- **n8n node:** [Affinity](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.affinity/) (`n8n-nodes-base.affinity`, version 1), 16 actions.
- **n8n performs it:** runs on the n8n credential *Affinity API* ([how to set it up](https://docs.n8n.io/integrations/builtin/credentials/affinity/)).
- **Veefore performs it:** 16 of 16 actions, with HTTP basic auth: username empty, password API key.
- **You enter:** API key.
- **API address:** `https://api.affinity.co`.
- **Get the key:** [support.affinity.co](https://support.affinity.co/hc/en-us/articles/360032633992-How-to-obtain-your-Affinity-API-key)

**Affinity in n8n**

| Action | Veefore calls | Fields to fill |
| --- | --- | --- |
| Get a list | `GET /lists/{listId}` | `listId` |
| Get many lists | `GET /lists` | — |
| Create a list entry | `POST /lists/{listId}/list-entries` | `listId`, `entityId` |
| Delete a list entry | `DELETE /lists/{listId}/list-entries/{listEntryId}` | `listId`, `listEntryId` |
| Get a list entry | `GET /lists/{listId}/list-entries/{listEntryId}` | `listId`, `listEntryId` |
| Get many list entries | `GET /lists/{listId}/list-entries` | `listId` |
| Create an organization | `POST /organizations` | `name`, `domain` |
| Delete an organization | `DELETE /organizations/{organizationId}` | `organizationId` |
| Get an organization | `GET /organizations/{organizationId}` | `organizationId` |
| Get many organizations | `GET /organizations` | — |
| Update an organization | `PUT /organizations/{organizationId}` | `organizationId` |
| Create a person | `POST /persons` | `firstName`, `lastName` |
| Delete a person | `DELETE /persons/{personId}` | `personId` |
| Get a person | `GET /persons/{personId}` | `personId` |
| Get many people | `GET /persons` | — |
| Update a person | `PUT /persons/{personId}` | `personId` |

## Agile CRM

- **n8n node:** [Agile CRM](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.agilecrm/) (`n8n-nodes-base.agileCrm`, version 1), 15 actions.
- **n8n performs it:** runs on the n8n credential *AgileCRM API* ([how to set it up](https://docs.n8n.io/integrations/builtin/credentials/agilecrm/)).
- **Veefore performs it:** 15 of 15 actions, with HTTP basic auth: username Email, password API key.
- **You enter:** Email, API key.
- **API address:** `https://{subdomain}.agilecrm.com/dev`.
- **Get the key:** [github.com](https://github.com/agilecrm/rest-api?tab=readme-ov-file#api-key)

**Agile CRM in n8n**

| Action | Veefore calls | Fields to fill |
| --- | --- | --- |
| Create a company | `POST /api/contacts` | `subdomain` |
| Delete a company | `DELETE /api/contacts/{companyId}` | `companyId`, `subdomain` |
| Get a company | `GET /api/contacts/{companyId}` | `companyId`, `subdomain` |
| Get many companies | `POST /api/filters/filter/dynamic-filter` | `subdomain` |
| Update a company | `PUT /api/contacts/edit-properties` | `companyId`, `subdomain` |
| Create a contact | `POST /api/contacts` | `subdomain` |
| Delete a contact | `DELETE /api/contacts/{contactId}` | `contactId`, `subdomain` |
| Get a contact | `GET /api/contacts/{contactId}` | `contactId`, `subdomain` |
| Get many contacts | `POST /api/filters/filter/dynamic-filter` | `subdomain` |
| Update a contact | `PUT /api/contacts/edit-properties` | `contactId`, `subdomain` |
| Create a deal | `POST /api/opportunity` | `closeDate`, `expectedValue`, `milestone`, `name`, `probability`, `subdomain` |
| Delete a deal | `DELETE /api/opportunity/{dealId}` | `dealId`, `subdomain` |
| Get a deal | `GET /api/opportunity/{dealId}` | `dealId`, `subdomain` |
| Get many deals | `GET /api/opportunity` | `subdomain` |
| Update a deal | `PUT /api/opportunity/partial-update` | `dealId`, `subdomain` |

## Airtable

- **n8n node:** [Airtable](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.airtable/) (`n8n-nodes-base.airtable`, version 2.2), 8 actions.
- **n8n performs it:** runs on the n8n credential *Airtable Personal Access Token API* ([how to set it up](https://docs.n8n.io/integrations/builtin/credentials/airtable/)).
- **Veefore performs it:** 8 of 8 actions, with a bearer token, sent as `Authorization: Bearer <token>`.
- **You enter:** Token.
- **API address:** `https://api.airtable.com/v0`.
- **Get the key:** [airtable.com](https://airtable.com/create/tokens)

**Airtable in n8n**

| Action | Veefore calls | Fields to fill |
| --- | --- | --- |
| Get many bases | `GET /meta/bases` | — |
| Get base schema | `GET /meta/bases/{base}/tables` | `base` |
| Create a record | `POST /{base}/{table}` | `base`, `table` |
| Create or update a record | `POST /{base}/{table}` | `base`, `table` |
| Delete a record | `DELETE /{base}/{table}/{id}` | `base`, `table`, `id` |
| Get a record | `GET /{base}/{table}/{id}` | `base`, `table`, `id` |
| Search records | `GET /{base}/{table}` | `base`, `table` |
| Update record | `GET /{base}/{table}` | `base`, `table` |

## Airtop

- **n8n node:** [Airtop](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.airtop/) (`n8n-nodes-base.airtop`, version 1), 24 actions.
- **n8n performs it:** runs on the n8n credential *Airtop API* ([how to set it up](https://docs.n8n.io/integrations/builtin/credentials/airtop/)).
- **Veefore performs it:** 23 of 24 actions, with a bearer token, sent as `Authorization: Bearer <token>`.
- **You enter:** Token.
- **Also sent:** the key again in the `api-key` header.
- **API address:** `https://{BASE_URL}`.
- **Get the key:** [portal.airtop.ai](https://portal.airtop.ai/api-keys)

**Airtop in n8n**

| Action | Veefore calls | Fields to fill |
| --- | --- | --- |
| Run an agent | `POST /{AIRTOP_HOOKS_BASE_URL}/agents/{agentId}/webhooks/{webhookId}` | `agentId`, `BASE_URL`, `AIRTOP_HOOKS_BASE_URL`, `webhookId` |
| Query page | `POST /sessions/{sessionId}/windows/{windowId}/page-query` | `sessionId`, `windowId`, `prompt`, `BASE_URL` |
| Query page with pagination | `POST /sessions/{sessionId}/windows/{windowId}/paginated-extraction` | `sessionId`, `windowId`, `prompt`, `BASE_URL` |
| Smart scrape page | `POST /sessions/{sessionId}/windows/{windowId}/scrape-content` | `sessionId`, `windowId`, `BASE_URL` |
| Delete a file | `DELETE /files/{fileId}` | `fileId`, `BASE_URL` |
| Get a file | `GET /files/{fileId}` | `fileId`, `BASE_URL` |
| Get many files | `GET /files` | `BASE_URL` |
| Load a file | `POST /files/{fileId}/push` | `sessionId`, `windowId`, `fileId`, `BASE_URL` |
| Upload a file | `POST /files` | `sessionId`, `windowId`, `fileName`, `url`, `BASE_URL` |
| Click an element | `POST /sessions/{sessionId}/windows/{windowId}/click` | `sessionId`, `windowId`, `elementDescription`, `BASE_URL` |
| Fill form | `POST /async/sessions/{sessionId}/windows/{windowId}/execute-automation` | `sessionId`, `windowId`, `formData`, `BASE_URL` |
| Hover on an element | `POST /sessions/{sessionId}/windows/{windowId}/hover` | `sessionId`, `windowId`, `elementDescription`, `BASE_URL` |
| Scroll on page | `POST /sessions/{sessionId}/windows/{windowId}/scroll` | `sessionId`, `windowId`, `scrollingMode`, `scrollToElement`, `BASE_URL` |
| Type text | `POST /sessions/{sessionId}/windows/{windowId}/type` | `sessionId`, `windowId`, `text`, `BASE_URL` |
| Create a session | `PUT /sessions/{sessionId}/save-profile-on-termination/{profileName}` | `BASE_URL`, `sessionId`, `profileName` |
| Save a profile on session termination | `PUT /sessions/{sessionId}/save-profile-on-termination/{profileName}` | `sessionId`, `profileName`, `BASE_URL` |
| Terminate a session | `DELETE /sessions/{sessionId}` | `sessionId`, `BASE_URL` |
| Wait for a download | n8n performs it | `sessionId` |
| Close a window | `DELETE /sessions/{sessionId}/windows/{windowId}` | `sessionId`, `windowId`, `BASE_URL` |
| Create a window | `POST /sessions/{sessionId}/windows` | `sessionId`, `BASE_URL` |
| Get live view | `GET /sessions/{sessionId}/windows/{windowId}` | `sessionId`, `windowId`, `BASE_URL` |
| List windows | `GET /sessions/{sessionId}/windows` | `sessionId`, `BASE_URL` |
| Load a page | `POST /sessions/{sessionId}/windows/{windowId}` | `sessionId`, `windowId`, `url`, `BASE_URL` |
| Take screenshot | `POST /sessions/{sessionId}/windows/{windowId}/screenshot` | `sessionId`, `windowId`, `BASE_URL` |

## AMQP Sender

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

**AMQP Sender in n8n**

| Action | Veefore calls | Fields to fill |
| --- | --- | --- |
| AMQP Sender | n8n performs it | — |

## Anthropic

- **n8n node:** [Anthropic](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-langchain.anthropic/) (`@n8n/n8n-nodes-langchain.anthropic`, version 1), 10 actions.
- **n8n performs it:** runs on the n8n credential *Anthropic* ([how to set it up](https://docs.n8n.io/integrations/builtin/credentials/anthropic/)).
- **Veefore performs it:** 10 of 10 actions, with the key in a header, as `x-api-key: <key>`.
- **You enter:** API key.
- **API address:** `https://api.anthropic.com`.
- **Get the key:** [console.anthropic.com](https://console.anthropic.com/settings/keys)

**Anthropic in n8n**

| Action | Veefore calls | Fields to fill |
| --- | --- | --- |
| Analyze document | `POST /v1/messages` | `modelId` |
| Upload a file | `POST /v1/files` | — |
| Get file metadata | `GET /v1/files/{fileId}` | `fileId` |
| List files | `GET /v1/files` | — |
| Delete a file | `DELETE /v1/files/{fileId}` | `fileId` |
| Analyze image | `POST /v1/messages` | `modelId` |
| Generate a prompt | `POST /v1/experimental/generate_prompt` | — |
| Improve a prompt | `POST /v1/experimental/improve_prompt` | — |
| Templatize a prompt | `POST /v1/experimental/templatize_prompt` | — |
| Message a model | `POST /v1/messages` | `modelId` |

**Anthropic API (OpenAPI)**

| Action | Veefore calls | Fields to fill |
| --- | --- | --- |
| Send a message to Claude | `POST https://api.anthropic.com/v1/messages` | `model`, `messages`, `max_tokens` |

Use an API key from console.anthropic.com. messages is a list such as [{"role":"user","content":"Hello"}]; model is e.g. claude-sonnet-4-5.

## APITemplate.io

- **n8n node:** [APITemplate.io](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.apitemplateio/) (`n8n-nodes-base.apiTemplateIo`, version 1), 3 actions.
- **n8n performs it:** runs on the n8n credential *APITemplate.io API* ([how to set it up](https://docs.n8n.io/integrations/builtin/credentials/apitemplateio/)).
- **Veefore performs it:** 3 of 3 actions, with the key in a header, as `X-API-KEY: <key>`.
- **You enter:** API key.
- **API address:** `https://api.apitemplate.io/v1`.
- **Get the key:** [app.apitemplate.io](https://app.apitemplate.io/)

**APITemplate.io in n8n**

| Action | Veefore calls | Fields to fill |
| --- | --- | --- |
| Get an account | `GET /account-information` | — |
| Create an image | `POST /create` | `imageTemplateId` |
| Create a pdf | `POST /create` | `pdfTemplateId` |

## Asana

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

**Asana in n8n**

| Action | Veefore calls | Fields to fill |
| --- | --- | --- |
| Create a project | `POST /teams/{team}/projects` | `name`, `workspace`, `team` |
| Delete a project | `DELETE /projects/{id}` | `id` |
| Get a project | `GET /projects/{id}` | `id` |
| Get many projects | `GET /projects` | `workspace` |
| Update a project | `PUT /projects/{id}` | `workspace`, `id` |
| Create a subtask | `POST /tasks/{taskId}/subtasks` | `taskId`, `name` |
| Get many subtasks | `GET /tasks/{taskId}/subtasks` | `taskId` |
| Create a task | `POST /tasks` | `workspace`, `name` |
| Delete a task | `DELETE /tasks/{id}` | `id` |
| Get a task | `GET /tasks/{id}` | `id` |
| Get many tasks | `GET /tasks` | — |
| Move a task | `POST /sections/{section}/addTask` | `id`, `projectId`, `section` |
| Search a task | `GET /workspaces/{workspace}/tasks/search` | `workspace` |
| Update a task | `PUT /tasks/{id}` | `id` |
| Add a task comment | `POST /tasks/{id}/stories` | `id`, `text` |
| Remove a task comment | `DELETE /stories/{id}` | `id` |
| Add a task project | `POST /tasks/{id}/addProject` | `id`, `project` |
| Remove a task project | `POST /tasks/{id}/removeProject` | `id`, `project` |
| Add a task tag | `POST /tasks/{id}/addTag` | `id`, `tag` |
| Remove a task tag | `POST /tasks/{id}/removeTag` | `id`, `tag` |
| Get a user | `GET /users/{userId}` | `userId` |
| Get many users | `GET /workspaces/{workspace}/users` | `workspace` |

**Asana API (OpenAPI)**

| Action | Veefore calls | Fields to fill |
| --- | --- | --- |
| Create a task | `POST https://app.asana.com/api/1.0/tasks` | — |
| Get a task | `GET https://app.asana.com/api/1.0/tasks/{task_gid}` | `task_gid` |
| Comment on a task | `POST https://app.asana.com/api/1.0/tasks/{task_gid}/stories` | `task_gid` |

Use a personal access token or a service account token.

## Autopilot

- **n8n node:** [Autopilot](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.autopilot/) (`n8n-nodes-base.autopilot`, version 1), 11 actions.
- **n8n performs it:** runs on the n8n credential *Autopilot API* ([how to set it up](https://docs.n8n.io/integrations/builtin/credentials/autopilot/)).
- **Veefore performs it:** 8 of 11 actions, with the key in a header, as `autopilotapikey: <key>`.
- **You enter:** API key.
- **API address:** `https://api2.autopilothq.com/v1`.

**Autopilot in n8n**

| Action | Veefore calls | Fields to fill |
| --- | --- | --- |
| Create or Update a contact | `POST /contact` | `email` |
| Delete a contact | `DELETE /contact/{contactId}` | `contactId` |
| Get a contact | `GET /contact/{contactId}` | `contactId` |
| Get many contacts | `GET /contacts` | — |
| Add a contact journey | `POST /trigger/{triggerId}/contact/{contactId}` | `triggerId`, `contactId` |
| Add a contact to a list | n8n performs it | `listId`, `contactId` |
| Check if a contact list exists | n8n performs it | `listId`, `contactId` |
| Get many contact lists | `GET /list/{listId}/contacts` | `listId` |
| Remove a contact from a list | n8n performs it | `listId`, `contactId` |
| Create a list | `POST /list` | `name` |
| Get many lists | `GET /lists` | — |

## AWS Certificate Manager

- **n8n node:** [AWS Certificate Manager](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.awscertificatemanager/) (`n8n-nodes-base.awsCertificateManager`, version 1), 5 actions.
- **n8n performs it:** runs on the n8n credential *AWS (IAM)* ([how to set it up](https://docs.n8n.io/integrations/builtin/credentials/aws/)).
- **Veefore performs it:** 5 of 5 actions, with an AWS access key; Veefore signs each request with Signature Version 4.
- **You enter:** Access key ID, Secret access key, Region.
- **Get the key:** [console.aws.amazon.com](https://console.aws.amazon.com/iam/home#/security_credentials)

**AWS Certificate Manager in n8n**

| Action | Veefore calls | Fields to fill |
| --- | --- | --- |
| Delete a certificate | `POST https://acm.us-east-1.amazonaws.com/` (target `CertificateManager.DeleteCertificate`) | `certificateArn`, `bucketName`, `certificateKey` |
| Get a certificate | `POST https://acm.us-east-1.amazonaws.com/` (target `CertificateManager.GetCertificate`) | `certificateArn` |
| Get many certificates | `POST https://acm.us-east-1.amazonaws.com/` (target `CertificateManager.ListCertificates`) | — |
| Get certificate metadata | `POST https://acm.us-east-1.amazonaws.com/` (target `CertificateManager.DescribeCertificate`) | `certificateArn` |
| Renew a certificate | `POST https://acm.us-east-1.amazonaws.com/` (target `CertificateManager.RenewCertificate`) | `certificateArn` |

## AWS Cognito

- **n8n node:** [AWS Cognito](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.awscognito/) (`n8n-nodes-base.awsCognito`, version 1), 13 actions.
- **n8n performs it:** runs on the n8n credential *AWS (IAM)* ([how to set it up](https://docs.n8n.io/integrations/builtin/credentials/aws/)).
- **Veefore performs it:** 13 of 13 actions, with an AWS access key; Veefore signs each request with Signature Version 4.
- **You enter:** Access key ID, Secret access key, Region.
- **Get the key:** [console.aws.amazon.com](https://console.aws.amazon.com/iam/home#/security_credentials)

**AWS Cognito in n8n**

| Action | Veefore calls | Fields to fill |
| --- | --- | --- |
| Create group | `POST https://cognito-idp.us-east-1.amazonaws.com/` (target `AWSCognitoIdentityProviderService.CreateGroup`) | `userPool`, `newGroupName` |
| Delete group | `POST https://cognito-idp.us-east-1.amazonaws.com/` (target `AWSCognitoIdentityProviderService.DeleteGroup`) | `userPool`, `group` |
| Get group | `POST https://cognito-idp.us-east-1.amazonaws.com/` (target `AWSCognitoIdentityProviderService.GetGroup`) | `userPool`, `group` |
| Get many groups | `POST https://cognito-idp.us-east-1.amazonaws.com/` (target `AWSCognitoIdentityProviderService.ListGroups`) | `userPool`, `limit` |
| Update group | `POST https://cognito-idp.us-east-1.amazonaws.com/` (target `AWSCognitoIdentityProviderService.UpdateGroup`) | `userPool`, `group` |
| Add user to group | `POST https://cognito-idp.us-east-1.amazonaws.com/` (target `AWSCognitoIdentityProviderService.AdminAddUserToGroup`) | `userPool`, `user`, `group` |
| Create user | `POST https://cognito-idp.us-east-1.amazonaws.com/` (target `AWSCognitoIdentityProviderService.AdminCreateUser`) | `userPool`, `newUserName` |
| Delete user | `POST https://cognito-idp.us-east-1.amazonaws.com/` (target `AWSCognitoIdentityProviderService.AdminDeleteUser`) | `userPool`, `user` |
| Get user | `POST https://cognito-idp.us-east-1.amazonaws.com/` (target `AWSCognitoIdentityProviderService.AdminGetUser`) | `userPool`, `user` |
| Get many users | `POST https://cognito-idp.us-east-1.amazonaws.com/` (target `AWSCognitoIdentityProviderService.ListUsers`) | `userPool`, `limit` |
| Remove user from group | `POST https://cognito-idp.us-east-1.amazonaws.com/` (target `AWSCognitoIdentityProviderService.AdminRemoveUserFromGroup`) | `userPool`, `user`, `group` |
| Update user | `POST https://cognito-idp.us-east-1.amazonaws.com/` (target `AWSCognitoIdentityProviderService.AdminUpdateUserAttributes`) | `userPool`, `user` |
| Get user pool | `POST https://cognito-idp.us-east-1.amazonaws.com/` (target `AWSCognitoIdentityProviderService.DescribeUserPool`) | `userPool` |

## AWS Comprehend

- **n8n node:** [AWS Comprehend](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.awscomprehend/) (`n8n-nodes-base.awsComprehend`, version 1), 3 actions.
- **n8n performs it:** runs on the n8n credential *AWS (IAM)* ([how to set it up](https://docs.n8n.io/integrations/builtin/credentials/aws/)).
- **Veefore performs it:** 3 of 3 actions, with an AWS access key; Veefore signs each request with Signature Version 4.
- **You enter:** Access key ID, Secret access key, Region.
- **Get the key:** [console.aws.amazon.com](https://console.aws.amazon.com/iam/home#/security_credentials)

**AWS Comprehend in n8n**

| Action | Veefore calls | Fields to fill |
| --- | --- | --- |
| Identify the dominant language | `POST https://comprehend.us-east-1.amazonaws.com/` (target `Comprehend_20171127.DetectDominantLanguage`) | — |
| Inspect text for named entities, and returns information about them | `POST https://comprehend.us-east-1.amazonaws.com/` (target `Comprehend_20171127.DetectEntities`) | — |
| Analyze the sentiment of the text | `POST https://comprehend.us-east-1.amazonaws.com/` (target `Comprehend_20171127.DetectSentiment`) | — |

## AWS DynamoDB

- **n8n node:** [AWS DynamoDB](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.awsdynamodb/) (`n8n-nodes-base.awsDynamoDb`, version 1), 4 actions.
- **n8n performs it:** runs on the n8n credential *AWS (IAM)* ([how to set it up](https://docs.n8n.io/integrations/builtin/credentials/aws/)).
- **Veefore performs it:** 4 of 4 actions, with an AWS access key; Veefore signs each request with Signature Version 4.
- **You enter:** Access key ID, Secret access key, Region.
- **Get the key:** [console.aws.amazon.com](https://console.aws.amazon.com/iam/home#/security_credentials)

**AWS DynamoDB in n8n**

| Action | Veefore calls | Fields to fill |
| --- | --- | --- |
| Create or update an item | `POST https://dynamodb.us-east-1.amazonaws.com/` (target `DynamoDB_20120810.PutItem`) | `tableName` |
| Delete an item | `POST https://dynamodb.us-east-1.amazonaws.com/` (target `DynamoDB_20120810.DeleteItem`) | `tableName` |
| Get an item | `POST https://dynamodb.us-east-1.amazonaws.com/` (target `DynamoDB_20120810.GetItem`) | `tableName` |
| Get many items | `POST https://dynamodb.us-east-1.amazonaws.com/` (target `DynamoDB_20120810.Scan`) | `tableName`, `keyConditionExpression` |

## AWS ELB

- **n8n node:** [AWS ELB](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.awselb/) (`n8n-nodes-base.awsElb`, version 1), 7 actions.
- **n8n performs it:** runs on the n8n credential *AWS (IAM)* ([how to set it up](https://docs.n8n.io/integrations/builtin/credentials/aws/)).
- **Veefore performs it:** 7 of 7 actions, with an AWS access key; Veefore signs each request with Signature Version 4.
- **You enter:** Access key ID, Secret access key, Region.
- **Get the key:** [console.aws.amazon.com](https://console.aws.amazon.com/iam/home#/security_credentials)

**AWS ELB in n8n**

| Action | Veefore calls | Fields to fill |
| --- | --- | --- |
| Add a listener certificate | `POST https://elasticloadbalancing.us-east-1.amazonaws.com/?Action=AddListenerCertificates&Version=2015-12-01` (form-encoded) | `loadBalancerId`, `listenerId`, `certificateId` |
| Get many listener certificates | `POST https://elasticloadbalancing.us-east-1.amazonaws.com/?Action=DescribeListenerCertificates&Version=2015-12-01` (form-encoded) | `loadBalancerId`, `listenerId` |
| Remove a listener certificate | `POST https://elasticloadbalancing.us-east-1.amazonaws.com/?Action=RemoveListenerCertificates&Version=2015-12-01` (form-encoded) | `loadBalancerId`, `listenerId`, `certificateId` |
| Create a load balancer | `POST https://elasticloadbalancing.us-east-1.amazonaws.com/?Action=CreateLoadBalancer&Version=2015-12-01` (form-encoded) | `ipAddressType`, `name`, `schema`, `type`, `subnets` |
| Delete a load balancer | `POST https://elasticloadbalancing.us-east-1.amazonaws.com/?Action=DeleteLoadBalancer&Version=2015-12-01` (form-encoded) | `loadBalancerId` |
| Get a load balancer | `POST https://elasticloadbalancing.us-east-1.amazonaws.com/?Action=DescribeLoadBalancers&Version=2015-12-01` (form-encoded) | `loadBalancerId` |
| Get many load balancers | `POST https://elasticloadbalancing.us-east-1.amazonaws.com/?Action=DescribeLoadBalancers&Version=2015-12-01` (form-encoded) | — |

## AWS IAM

- **n8n node:** [AWS IAM](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.awsiam/) (`n8n-nodes-base.awsIam`, version 1), 12 actions.
- **n8n performs it:** runs on the n8n credential *AWS (IAM)* ([how to set it up](https://docs.n8n.io/integrations/builtin/credentials/aws/)).
- **Veefore performs it:** 12 of 12 actions, with an AWS access key; Veefore signs each request with Signature Version 4.
- **You enter:** Access key ID, Secret access key, Region.
- **API address:** `https://iam.amazonaws.com`.
- **Get the key:** [console.aws.amazon.com](https://console.aws.amazon.com/iam/home#/security_credentials)

**AWS IAM in n8n**

| Action | Veefore calls | Fields to fill |
| --- | --- | --- |
| Add user to group | `POST /?Action=AddUserToGroup&Version=2010-05-08` (form-encoded) | `user`, `group` |
| Create user | `POST /?Action=CreateUser&Version=2010-05-08` (form-encoded) | `userName` |
| Delete user | `POST /?Action=DeleteUser&Version=2010-05-08` (form-encoded) | `user` |
| Get user | `POST /?Action=GetUser&Version=2010-05-08` (form-encoded) | `user` |
| Get many users | `POST /?Action=ListUsers&Version=2010-05-08` (form-encoded) | — |
| Remove user from group | `POST /?Action=RemoveUserFromGroup&Version=2010-05-08` (form-encoded) | `user`, `group` |
| Update user | `POST /?Action=UpdateUser&Version=2010-05-08` (form-encoded) | `user`, `userName` |
| Create group | `POST /?Action=CreateGroup&Version=2010-05-08` (form-encoded) | `groupName` |
| Delete group | `POST /?Action=DeleteGroup&Version=2010-05-08` (form-encoded) | `group` |
| Get group | `POST /?Action=GetGroup&Version=2010-05-08` (form-encoded) | `group` |
| Get many groups | `POST /?Action=ListGroups&Version=2010-05-08` (form-encoded) | — |
| Update group | `POST /?Action=UpdateGroup&Version=2010-05-08` (form-encoded) | `group`, `groupName` |

## AWS Lambda

- **n8n node:** [AWS Lambda](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.awslambda/) (`n8n-nodes-base.awsLambda`, version 1), 1 action.
- **n8n performs it:** runs on the n8n credential *AWS (IAM)* ([how to set it up](https://docs.n8n.io/integrations/builtin/credentials/aws/)).
- **Veefore performs it:** 1 of 1 action, with an AWS access key; Veefore signs each request with Signature Version 4.
- **You enter:** Access key ID, Secret access key, Region.
- **Get the key:** [console.aws.amazon.com](https://console.aws.amazon.com/iam/home#/security_credentials)

**AWS Lambda in n8n**

| Action | Veefore calls | Fields to fill |
| --- | --- | --- |
| Invoke a function | `POST https://lambda.us-east-1.amazonaws.com/2015-03-31/functions/{function}/invocations` | `function`, `qualifier` |

## AWS Rekognition

- **n8n node:** [AWS Rekognition](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.awsrekognition/) (`n8n-nodes-base.awsRekognition`, version 1), 1 action.
- **n8n performs it:** runs on the n8n credential *AWS (IAM)* ([how to set it up](https://docs.n8n.io/integrations/builtin/credentials/aws/)).
- **Veefore performs it:** 1 of 1 action, with an AWS access key; Veefore signs each request with Signature Version 4.
- **You enter:** Access key ID, Secret access key, Region.
- **Get the key:** [console.aws.amazon.com](https://console.aws.amazon.com/iam/home#/security_credentials)

**AWS Rekognition in n8n**

| Action | Veefore calls | Fields to fill |
| --- | --- | --- |
| Analyze image | `POST https://rekognition.us-east-1.amazonaws.com/` (target `RekognitionService.DetectFaces`) | `binaryData`, `bucket`, `name` |

## AWS S3

- **n8n node:** [AWS S3](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.awss3/) (`n8n-nodes-base.awsS3`, version 2), 12 actions.
- **n8n performs it:** runs on the n8n credential *AWS (IAM)* ([how to set it up](https://docs.n8n.io/integrations/builtin/credentials/aws/)).
- **Veefore performs it:** 10 of 12 actions, with an AWS access key; Veefore signs each request with Signature Version 4.
- **You enter:** Access key ID, Secret access key, Region.
- **Get the key:** [console.aws.amazon.com](https://console.aws.amazon.com/iam/home#/security_credentials)

**AWS S3 in n8n**

| Action | Veefore calls | Fields to fill |
| --- | --- | --- |
| Create a bucket | `PUT https://s3.us-east-1.amazonaws.com/{name}` | `name` |
| Delete a bucket | `DELETE https://s3.us-east-1.amazonaws.com/{name}` | `name` |
| Get many buckets | `GET https://s3.us-east-1.amazonaws.com/` | — |
| Search a bucket | `GET https://s3.us-east-1.amazonaws.com/{bucketName}?list-type=2` | `bucketName` |
| Copy a file | n8n performs it | `sourcePath`, `destinationPath` |
| Delete a file | `DELETE https://s3.us-east-1.amazonaws.com/{bucketName}/{fileKey}` | `bucketName`, `fileKey` |
| Download a file | `GET https://s3.us-east-1.amazonaws.com/{bucketName}/{fileKey}` | `bucketName`, `fileKey`, `binaryPropertyName` |
| Get many files | `GET https://s3.us-east-1.amazonaws.com/{bucketName}?list-type=2` | `bucketName` |
| Upload a file | n8n performs it | `bucketName`, `binaryPropertyName` |
| Create a folder | `PUT https://s3.us-east-1.amazonaws.com/{bucketName}/{folderName}/` | `bucketName`, `folderName` |
| Delete a folder | `DELETE https://s3.us-east-1.amazonaws.com/{bucketName}/{folderKey}` | `bucketName`, `folderKey` |
| Get many folders | `GET https://s3.us-east-1.amazonaws.com/{bucketName}?list-type=2` | `bucketName` |

## AWS SES

- **n8n node:** [AWS SES](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.awsses/) (`n8n-nodes-base.awsSes`, version 1), 13 actions.
- **n8n performs it:** runs on the n8n credential *AWS (IAM)* ([how to set it up](https://docs.n8n.io/integrations/builtin/credentials/aws/)).
- **Veefore performs it:** 13 of 13 actions, with an AWS access key; Veefore signs each request with Signature Version 4.
- **You enter:** Access key ID, Secret access key, Region.
- **Get the key:** [console.aws.amazon.com](https://console.aws.amazon.com/iam/home#/security_credentials)

**AWS SES in n8n**

| Action | Veefore calls | Fields to fill |
| --- | --- | --- |
| Create a custom verification email | `POST https://email.us-east-1.amazonaws.com/?Action=CreateCustomVerificationEmailTemplate&Version=2010-12-01` (form-encoded) | `fromEmailAddress`, `templateSubject`, `successRedirectionURL`, `failureRedirectionURL` |
| Delete a custom verification email | `POST https://email.us-east-1.amazonaws.com/?Action=DeleteCustomVerificationEmailTemplate&Version=2010-12-01` (form-encoded) | — |
| Get a custom verification email | `POST https://email.us-east-1.amazonaws.com/?Action=GetCustomVerificationEmailTemplate&Version=2010-12-01` (form-encoded) | — |
| Get many custom verifications | `POST https://email.us-east-1.amazonaws.com/?Action=ListCustomVerificationEmailTemplates&Version=2010-12-01` (form-encoded) | — |
| Send a custom verification email | `POST https://email.us-east-1.amazonaws.com/?Action=SendCustomVerificationEmail&Version=2010-12-01` (form-encoded) | `email`, `templateName` |
| Update a custom verification email | `POST https://email.us-east-1.amazonaws.com/?Action=UpdateCustomVerificationEmailTemplate&Version=2010-12-01` (form-encoded) | — |
| Send an email | `POST https://email.us-east-1.amazonaws.com/?Action=SendEmail&Version=2010-12-01` (form-encoded) | `subject`, `body`, `fromEmail` |
| Send an email based on a template | `POST https://email.us-east-1.amazonaws.com/?Action=SendTemplatedEmail&Version=2010-12-01` (form-encoded) | `fromEmail` |
| Create a template | `POST https://email.us-east-1.amazonaws.com/?Action=CreateTemplate&Version=2010-12-01` (form-encoded) | `templateName` |
| Delete a template | `POST https://email.us-east-1.amazonaws.com/?Action=DeleteTemplate&Version=2010-12-01` (form-encoded) | `templateName` |
| Get a template | `POST https://email.us-east-1.amazonaws.com/?Action=GetTemplate&Version=2010-12-01` (form-encoded) | `templateName` |
| Get many templates | `POST https://email.us-east-1.amazonaws.com/?Action=ListTemplates&Version=2010-12-01` (form-encoded) | — |
| Update a template | `POST https://email.us-east-1.amazonaws.com/?Action=UpdateTemplate&Version=2010-12-01` (form-encoded) | `templateName` |

## AWS SNS

- **n8n node:** [AWS SNS](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.awssns/) (`n8n-nodes-base.awsSns`, version 1), 3 actions.
- **n8n performs it:** runs on the n8n credential *AWS (IAM)* ([how to set it up](https://docs.n8n.io/integrations/builtin/credentials/aws/)).
- **Veefore performs it:** 3 of 3 actions, with an AWS access key; Veefore signs each request with Signature Version 4.
- **You enter:** Access key ID, Secret access key, Region.
- **Get the key:** [console.aws.amazon.com](https://console.aws.amazon.com/iam/home#/security_credentials)

**AWS SNS in n8n**

| Action | Veefore calls | Fields to fill |
| --- | --- | --- |
| Create a topic | `POST https://sns.us-east-1.amazonaws.com/?Action=CreateTopic&Version=2010-03-31` (form-encoded) | `name` |
| Delete a topic | `POST https://sns.us-east-1.amazonaws.com/?Action=DeleteTopic&Version=2010-03-31` (form-encoded) | `topic` |
| Publish a message to a topic | `POST https://sns.us-east-1.amazonaws.com/?Action=Publish&Version=2010-03-31` (form-encoded) | `topic`, `subject`, `message` |

## AWS SQS

- **n8n node:** [AWS SQS](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.awssqs/) (`n8n-nodes-base.awsSqs`, version 1), 1 action.
- **n8n performs it:** runs on the n8n credential *AWS (IAM)* ([how to set it up](https://docs.n8n.io/integrations/builtin/credentials/aws/)).
- **Veefore performs it:** 1 of 1 action, with an AWS access key; Veefore signs each request with Signature Version 4.
- **You enter:** Access key ID, Secret access key, Region.
- **Get the key:** [console.aws.amazon.com](https://console.aws.amazon.com/iam/home#/security_credentials)

**AWS SQS in n8n**

| Action | Veefore calls | Fields to fill |
| --- | --- | --- |
| Send a message to a queue | `POST https://sqs.us-east-1.amazonaws.com/{accountId}/{queueName}?Action=SendMessage&Version=2012-11-05` (form-encoded) | `queue`, `accountId`, `queueName` |

## AWS Textract

- **n8n node:** [AWS Textract](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.awstextract/) (`n8n-nodes-base.awsTextract`, version 1), 1 action.
- **n8n performs it:** runs on the n8n credential *AWS (IAM)* ([how to set it up](https://docs.n8n.io/integrations/builtin/credentials/aws/)).
- **Veefore performs it:** 1 of 1 action, with an AWS access key; Veefore signs each request with Signature Version 4.
- **You enter:** Access key ID, Secret access key, Region.
- **Get the key:** [console.aws.amazon.com](https://console.aws.amazon.com/iam/home#/security_credentials)

**AWS Textract in n8n**

| Action | Veefore calls | Fields to fill |
| --- | --- | --- |
| Analyze Receipt or Invoice | `POST https://textract.us-east-1.amazonaws.com/` (target `Textract.AnalyzeExpense`) | `binaryPropertyName` |

## AWS Transcribe

- **n8n node:** [AWS Transcribe](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.awstranscribe/) (`n8n-nodes-base.awsTranscribe`, version 1), 4 actions.
- **n8n performs it:** runs on the n8n credential *AWS (IAM)* ([how to set it up](https://docs.n8n.io/integrations/builtin/credentials/aws/)).
- **Veefore performs it:** 4 of 4 actions, with an AWS access key; Veefore signs each request with Signature Version 4.
- **You enter:** Access key ID, Secret access key, Region.
- **Get the key:** [console.aws.amazon.com](https://console.aws.amazon.com/iam/home#/security_credentials)

**AWS Transcribe in n8n**

| Action | Veefore calls | Fields to fill |
| --- | --- | --- |
| Create a transcription job | `POST https://transcribe.us-east-1.amazonaws.com/` (target `Transcribe.StartTranscriptionJob`) | — |
| Delete a transcription job | `POST https://transcribe.us-east-1.amazonaws.com/` (target `Transcribe.DeleteTranscriptionJob`) | — |
| Get a transcription job | `POST https://transcribe.us-east-1.amazonaws.com/` (target `Transcribe.GetTranscriptionJob`) | — |
| Get many transcription jobs | `POST https://transcribe.us-east-1.amazonaws.com/` (target `Transcribe.ListTranscriptionJobs`) | — |

## Azure Cosmos DB

- **n8n node:** [Azure Cosmos DB](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.azurecosmosdb/) (`n8n-nodes-base.azureCosmosDb`, version 1), 10 actions.
- **n8n performs it:** runs on the n8n credential *Microsoft Azure Cosmos DB API* ([how to set it up](https://docs.n8n.io/integrations/builtin/credentials/azurecosmosdb/)).
- **Veefore performs it:** not available. Azure Cosmos DB signs each request with its shared key, which Veefore does not do; n8n performs it.
- **Get the key:** [portal.azure.com](https://portal.azure.com/#browse/Microsoft.DocumentDb%2FdatabaseAccounts)

**Azure Cosmos DB in n8n**

| Action | Veefore calls | Fields to fill |
| --- | --- | --- |
| Create container | n8n performs it | `containerCreate`, `partitionKey` |
| Delete container | n8n performs it | `container` |
| Get container | n8n performs it | `container` |
| Get many containers | n8n performs it | — |
| Create item | n8n performs it | `container`, `customProperties` |
| Delete item | n8n performs it | `container`, `item` |
| Get item | n8n performs it | `container`, `item` |
| Get many items | n8n performs it | `container` |
| Query items | n8n performs it | `container`, `query` |
| Update item | n8n performs it | `container`, `item`, `customProperties` |

## Azure Storage

- **n8n node:** [Azure Storage](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.azurestorage/) (`n8n-nodes-base.azureStorage`, version 1), 8 actions.
- **n8n performs it:** runs on the n8n credential *Azure Storage Shared Key API* ([how to set it up](https://docs.n8n.io/integrations/builtin/credentials/azurestorage/)).
- **Veefore performs it:** not available. Azure Storage signs each request with its shared key, which Veefore does not do; n8n performs it.
- **Get the key:** [learn.microsoft.com](https://learn.microsoft.com/en-us/graph/auth-register-app-v2#add-credentials)

**Azure Storage in n8n**

| Action | Veefore calls | Fields to fill |
| --- | --- | --- |
| Create blob | n8n performs it | `container`, `blobCreate`, `from`, `binaryPropertyName` |
| Delete blob | n8n performs it | `container`, `blob` |
| Get blob | n8n performs it | `container`, `blob` |
| Get many blobs | n8n performs it | `container` |
| Create container | n8n performs it | `containerCreate` |
| Delete container | n8n performs it | `container` |
| Get container | n8n performs it | `container` |
| Get many container | n8n performs it | — |
