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


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

## Zammad

- **n8n node:** [Zammad](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.zammad/) (`n8n-nodes-base.zammad`, version 1), 21 actions.
- **n8n performs it:** runs on the n8n credential *Zammad Token Auth API* ([how to set it up](https://docs.n8n.io/integrations/builtin/credentials/zammad/)).
- **Veefore performs it:** 21 of 21 actions, with the key in a header, as `Authorization: Token token=<key>`.
- **You enter:** Access token.
- **API address:** `https://{baseUrl}/api/v1`.

**Zammad in n8n**

| Action | Veefore calls | Fields to fill |
| --- | --- | --- |
| Create a group | `POST /groups` | `name`, `baseUrl` |
| Delete a group | `DELETE /groups/{id}` | `id`, `baseUrl` |
| Get a group | `GET /groups/{id}` | `id`, `baseUrl` |
| Get many groups | `GET /groups` | `baseUrl` |
| Update a group | `PUT /groups/{id}` | `id`, `baseUrl` |
| Create an organization | `POST /organizations` | `name`, `baseUrl` |
| Delete an organization | `DELETE /organizations/{id}` | `id`, `baseUrl` |
| Get an organization | `GET /organizations/{id}` | `id`, `baseUrl` |
| Get many organizations | `GET /organizations` | `baseUrl` |
| Update an organization | `PUT /organizations/{id}` | `id`, `baseUrl` |
| Create a ticket | `POST /tickets` | `title`, `group`, `customer`, `baseUrl` |
| Delete a ticket | `DELETE /tickets/{id}` | `id`, `baseUrl` |
| Get a ticket | `GET /tickets/{id}` | `id`, `baseUrl` |
| Get many tickets | `GET /tickets` | `baseUrl` |
| Update a ticket | `PUT /tickets/{id}` | `id`, `baseUrl` |
| Create a user | `POST /users` | `firstname`, `lastname`, `baseUrl` |
| Delete a user | `DELETE /users/{id}` | `id`, `baseUrl` |
| Get a user | `GET /users/{id}` | `id`, `baseUrl` |
| Get many users | `GET /users/search` | `baseUrl` |
| Get currently logged-in user | `GET /users/me` | `baseUrl` |
| Update a user | `PUT /users/{id}` | `id`, `baseUrl` |

## Zendesk

- **n8n node:** [Zendesk](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.zendesk/) (`n8n-nodes-base.zendesk`, version 1), 23 actions.
- **n8n performs it:** runs on the n8n credential *Zendesk API* ([how to set it up](https://docs.n8n.io/integrations/builtin/credentials/zendesk/)).
- **Veefore performs it:** 23 of 23 actions, with HTTP basic auth: username Your email followed by /token, password API token.
- **You enter:** Your email followed by /token, API token.
- **API address:** `https://{subdomain}.zendesk.com/api/v2`.
- **Get the key:** [developer.zendesk.com](https://developer.zendesk.com/api-reference/introduction/security-and-auth/#api-token)

**Zendesk in n8n**

| Action | Veefore calls | Fields to fill |
| --- | --- | --- |
| Create a ticket | `POST /tickets` | `description`, `subdomain` |
| Delete a ticket | `DELETE /tickets/{id}` | `ticketType`, `id`, `subdomain` |
| Get a ticket | `GET /tickets/{id}` | `ticketType`, `id`, `subdomain` |
| Get many tickets | `GET /search` | `ticketType`, `subdomain` |
| Recover a ticket | `PUT /suspended_tickets/{id}/recover` | `id`, `subdomain` |
| Update a ticket | `PUT /tickets/{id}` | `id`, `subdomain` |
| Get a ticket field | `GET /ticket_fields/{ticketFieldId}` | `ticketFieldId`, `subdomain` |
| Get many ticket fields | `GET /ticket_fields` | `subdomain` |
| Create a user | `POST /users` | `name`, `subdomain` |
| Delete a user | `DELETE /users/{id}` | `id`, `subdomain` |
| Get a user | `GET /users/{id}` | `id`, `subdomain` |
| Get many users | `GET /users` | `subdomain` |
| Get a user's organizations | `GET /users/{id}/organizations` | `id`, `subdomain` |
| Get data related to a user | `GET /users/{id}/related` | `id`, `subdomain` |
| Search a user | `GET /users/search` | `subdomain` |
| Update a user | `PUT /users/{id}` | `id`, `subdomain` |
| Count organizations | `GET /organizations/count` | `subdomain` |
| Create an organization | `POST /organizations` | `name`, `subdomain` |
| Delete an organization | `DELETE /organizations/{id}` | `id`, `subdomain` |
| Get an organization | `GET /organizations/{id}` | `id`, `subdomain` |
| Get many organizations | `GET /organizations` | `subdomain` |
| Get data related to an organization | `GET /organizations/{id}/related` | `id`, `subdomain` |
| Update an organization | `PUT /organizations/{id}` | `id`, `subdomain` |

## Zoho CRM

- **n8n node:** [Zoho CRM](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.zohocrm/) (`n8n-nodes-base.zohoCrm`, version 1), 61 actions.
- **n8n performs it:** runs on the n8n credential *Zoho OAuth2 API* ([how to set it up](https://docs.n8n.io/integrations/builtin/credentials/zoho/)).
- **Veefore performs it:** 61 of 61 actions, with OAuth 2.0 with a refresh token; Veefore renews access tokens at `https://accounts.zoho.com/oauth/v2/token` (scope `ZohoCRM.modules.ALL,ZohoCRM.settings.all,ZohoCRM.users.all`).
- **You enter:** OAuth client ID, Client secret, Refresh token.
- **API address:** `https://www.zohoapis.com/crm/v2`.
- **Get the key:** [zoho.com](https://www.zoho.com/accounts/protocol/oauth-setup.html)

**Zoho CRM in n8n**

| Action | Veefore calls | Fields to fill |
| --- | --- | --- |
| Create an account | `POST /accounts` | `accountName` |
| Create or Update an account | `POST /accounts/upsert` | `accountName` |
| Delete an account | `DELETE /accounts/{accountId}` | `accountId` |
| Get an account | `GET /accounts/{accountId}` | `accountId` |
| Get many accounts | `GET /accounts` | — |
| Update an account | `PUT /accounts/{accountId}` | `accountId` |
| Create a contact | `POST /contacts` | `lastName` |
| Create or Update a contact | `POST /contacts/upsert` | `lastName` |
| Delete a contact | `DELETE /contacts/{contactId}` | `contactId` |
| Get a contact | `GET /contacts/{contactId}` | `contactId` |
| Get many contacts | `GET /contacts` | — |
| Update a contact | `PUT /contacts/{contactId}` | `contactId` |
| Create a deal | `POST /deals` | `dealName`, `stage` |
| Create or Update a deal | `POST /deals/upsert` | `dealName`, `stage` |
| Delete a deal | `DELETE /deals/{dealId}` | `dealId` |
| Get a deal | `GET /deals/{dealId}` | `dealId` |
| Get many deals | `GET /deals` | — |
| Update a deal | `PUT /deals/{dealId}` | `dealId` |
| Create an invoice | `POST /invoices` | `subject` |
| Create or Update an invoice | `POST /invoices/upsert` | `subject` |
| Delete an invoice | `DELETE /invoices/{invoiceId}` | `invoiceId` |
| Get an invoice | `GET /invoices/{invoiceId}` | `invoiceId` |
| Get many invoices | `GET /invoices` | — |
| Update an invoice | `PUT /invoices/{invoiceId}` | `invoiceId` |
| Create a lead | `POST /leads` | `Company`, `lastName` |
| Create or update a lead | `POST /leads/upsert` | `Company`, `lastName` |
| Delete a lead | `DELETE /leads/{leadId}` | `leadId` |
| Get a lead | `GET /leads/{leadId}` | `leadId` |
| Get lead fields | `GET /settings/fields` | — |
| Get many leads | `GET /leads` | — |
| Update a lead | `PUT /leads/{leadId}` | `leadId` |
| Create a product | `POST /products` | `productName` |
| Create or update a product | `POST /products/upsert` | `productName` |
| Delete a product | `DELETE /products/{productId}` | `productId` |
| Get a product | `GET /products/{productId}` | `productId` |
| Get many products | `GET /products` | — |
| Update a product | `PUT /products/{productId}` | `productId` |
| Create a purchase order | `POST /purchase_orders` | `subject` |
| Create or update a purchase order | `POST /purchase_orders/upsert` | `subject` |
| Delete a purchase order | `DELETE /purchase_orders/{purchaseOrderId}` | `purchaseOrderId` |
| Get a purchase order | `GET /purchase_orders/{purchaseOrderId}` | `purchaseOrderId` |
| Get many purchase orders | `GET /purchase_orders` | — |
| Update a purchase order | `PUT /purchase_orders/{purchaseOrderId}` | `purchaseOrderId` |
| Create a quote | `POST /quotes` | `subject` |
| Create or update a quote | `POST /quotes/upsert` | `subject` |
| Delete a quote | `DELETE /quotes/{quoteId}` | `quoteId` |
| Get a quote | `GET /quotes/{quoteId}` | `quoteId` |
| Get many quotes | `GET /quotes` | — |
| Update a quote | `PUT /quotes/{quoteId}` | `quoteId` |
| Create a sales order | `POST /sales_orders` | `accountId`, `subject` |
| Create or update a sales order | `POST /sales_orders/upsert` | `accountId`, `subject` |
| Delete a sales order | `DELETE /sales_orders/{salesOrderId}` | `salesOrderId` |
| Get a sales order | `GET /sales_orders/{salesOrderId}` | `salesOrderId` |
| Get many sales orders | `GET /sales_orders` | — |
| Update a sales order | `PUT /sales_orders/{salesOrderId}` | `salesOrderId` |
| Create a vendor | `POST /vendors` | `vendorName` |
| Create or update a vendor | `POST /vendors/upsert` | `vendorName` |
| Delete a vendor | `DELETE /vendors/{vendorId}` | `vendorId` |
| Get a vendor | `GET /vendors/{vendorId}` | `vendorId` |
| Get many vendors | `GET /vendors` | — |
| Update a vendor | `PUT /vendors/{vendorId}` | `vendorId` |

## Zoom

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

**Zoom in n8n**

| Action | Veefore calls | Fields to fill |
| --- | --- | --- |
| Create a meeting | `POST /users/me/meetings` | — |
| Delete a meeting | `DELETE /meetings/{meetingId}` | `meetingId` |
| Get a meeting | `GET /meetings/{meetingId}` | `meetingId` |
| Get many meetings | `GET /users/me/meetings` | — |
| Update a meeting | `PATCH /meetings/{meetingId}` | `meetingId` |

## Zulip

- **n8n node:** [Zulip](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.zulip/) (`n8n-nodes-base.zulip`, version 1), 16 actions.
- **n8n performs it:** runs on the n8n credential *Zulip API* ([how to set it up](https://docs.n8n.io/integrations/builtin/credentials/zulip/)).
- **Veefore performs it:** 16 of 16 actions, with HTTP basic auth: username Bot email, password API key.
- **You enter:** Bot email, API key.
- **API address:** `https://{endpoint}`.
- **Get the key:** [zulip.com](https://zulip.com/api/api-keys)

**Zulip in n8n**

| Action | Veefore calls | Fields to fill |
| --- | --- | --- |
| Delete a message | `DELETE /messages/{messageId}` | `messageId`, `endpoint` |
| Get a message | `GET /messages/{messageId}` | `messageId`, `endpoint` |
| Send a private message | `POST /messages` | `to`, `content`, `endpoint` |
| Send a message to a stream | `POST /messages` | `stream`, `topic`, `content`, `endpoint` |
| Update a message | `PATCH /messages/{messageId}` | `messageId`, `endpoint` |
| Upload a file | `POST /user_uploads` | `dataBinaryProperty`, `endpoint` |
| Create a stream | `POST /users/me/subscriptions` | `endpoint` |
| Delete a stream | `DELETE /streams/{streamId}` | `streamId`, `endpoint` |
| Get many streams | `GET /streams` | `endpoint` |
| Get subscribed streams | `GET /users/me/subscriptions` | `endpoint` |
| Update a stream | `PATCH /streams/{streamId}` | `streamId`, `endpoint` |
| Create a user | `POST /users` | `email`, `fullName`, `password`, `shortName`, `endpoint` |
| Deactivate a user | `DELETE /users/{userId}` | `userId`, `endpoint` |
| Get a user | `GET /users/{userId}` | `userId`, `endpoint` |
| Get many users | `GET /users` | `endpoint` |
| Update a user | `PATCH /users/{userId}` | `userId`, `endpoint` |
