# Novu MCP connector

The Novu connector brings your channel connections, channel endpoints, contexts, sending domains, and delivery provider activity into Elaichi, so Claude, ChatGPT, Cursor, or any MCP client can review and manage your notification setup as you.

Source: https://elaichi.ai/connectors/novu/

## Facts

| | |
| --- | --- |
| Application | Novu |
| Category | Marketing Automation |
| AI tools | 121 |
| Authentication | Connects with an API key |
| Needs your own OAuth app | No |
| MCP endpoint | https://api.elaichi.ai/mcp |
| Works with | Claude, ChatGPT, Cursor, any MCP client, and the Elaichi Agent |
| Tools advertised by name | No. 121 tools is past the 30-tool threshold, so clients use `search_tools` and `execute_tool` |

## What you can ask once Novu is connected

- List Novu channel connections added this month
- Which Novu channel endpoints failed delivery yesterday
- Summarize Novu activity events for the onboarding workflow

## Connect Novu in Elaichi

This happens once for the organization, before any client is involved.

1. Open Connections, choose Add connection, and pick Novu.
2. Optionally set Share with, then press Connect.
3. Paste a Novu API key. One person generates a token in Novu and pastes it once. Everyone else works through Share with, and never sees it.

Credentials are vaulted and nobody, including the AI, reads them back. The connection becomes a toolbox immediately, so you can curate which Novu tools are exposed, rename them, or freeze arguments before anyone points a client at it.

## Connect Novu to Claude

Endpoint: https://api.elaichi.ai/mcp

1. Open Customize, then Connectors.
2. Press Add.
3. Name it, paste the MCP server URL, then Continue.
4. Sign in and approve.

On Team and Enterprise, an Owner adds it once. Everyone else turns it on for themselves.

## Connect Novu to ChatGPT

Endpoint: https://api.elaichi.ai/mcp

1. Open Plugins, then press the + button.
2. Name it and paste the endpoint into Server URL.
3. Leave Authentication on OAuth, then tick the risk acknowledgement.
4. Press Create, then sign in and approve.

Works on the web today. The plugin directory lives at chatgpt.com/plugins.

## Connect Novu to Cursor

Endpoint: https://api.elaichi.ai/mcp

1. Open `~/.cursor/mcp.json`.
2. Add the endpoint under `mcpServers`.
3. Reload Cursor, then sign in and approve.

Set up per machine, so repeat it on each computer you work from.

## Connect Novu to any MCP client

Endpoint: https://api.elaichi.ai/mcp

1. Add the endpoint as a remote MCP server.
2. Sign in and approve.

The Elaichi Agent already has these tools, with nothing to set up.

## What the consent screen decides

Only Read is granted by default, which is not enough to call a Novu tool. Over MCP there is no trusted place to confirm a write in the moment, so the consent screen is the standing approval rather than a formality. Grant Read and Run tools. Think hard before granting Delete, which reaches into connected apps and cannot be undone.

## What teams do with Novu through Elaichi

### Audit every channel connection before a launch

Platform. Ask for the full list of Novu channel connections and endpoints and spot the one that is missing or pointed at the wrong place before customers notice.

### Verify a sending domain and fix failures

Marketing. Verify a new Novu domain, run a diagnosis when it fails, and pull the auto configure details so the DNS records get set correctly the first time.

### Check where a customer's notifications are going

Support. Look up a specific Novu channel endpoint or context to confirm which address or device is receiving messages when someone says they never got the notification.

### Set up a new notification channel

Product. Create the Novu channel connection and its endpoint for a new push or chat channel in plain language, then confirm it appears in the list.

### Keep contexts current across environments

Operations. List Novu contexts, update the ones that have drifted, and remove the leftovers from a test that finished months ago.

### Record a delivery provider event on the spot

Engineering. Log a Novu delivery provider activity event while investigating an incident so the timeline in Novu matches what the on-call engineer saw.

## Frequently asked questions

### How do I connect Novu to Claude?

Connect Novu in Elaichi first, which means pasting a Novu API key when asked. Novu has no OAuth application to register, so there is no client ID or secret to generate. Then open Claude, go to Customize, then Connectors, then Add, and paste https://api.elaichi.ai/mcp as the endpoint. Sign in with your Elaichi account and Novu is available in Claude.

### Does Novu work with ChatGPT and Cursor as well as Claude?

Yes. Once Novu is connected in Elaichi, the same endpoint, https://api.elaichi.ai/mcp, works in Claude, ChatGPT, Cursor, any other MCP client, and the Elaichi Agent. You connect Novu once and every client you use picks it up.

### What can an AI agent actually do with my Novu data?

An agent can list, look up, create, update, and remove Novu channel connections, channel endpoints, and contexts, and it can manage sending domains, including verifying a domain, diagnosing why verification failed, and fetching auto configure details. It can also record delivery provider activity events. Because Novu exposes a lot of actions, short concrete asks like "verify the acme.com domain" get better results than long paragraphs.

### Does connecting Novu give the AI access to my whole workspace?

No. Everything the agent does in Novu runs inside the access of the API key the person connected, so it can reach only what that key can reach. Elaichi can narrow that further by turning off individual actions, and it can never widen what Novu itself allows.

### Can my team share one Novu connection?

Yes. One person connects Novu in Elaichi and shares the connection with a team, and nobody else ever sees or handles the Novu API key. Each teammate still signs in to Elaichi as themselves, so the audit log records exactly who verified a domain or deleted a channel endpoint.

### Can I stop an agent from deleting or changing things in Novu?

Yes. Restrictions in Elaichi apply per action, so you can allow listing and looking up Novu channel connections, endpoints, contexts, and domains while blocking the actions that update or delete them. A blocked action is never advertised to Claude, ChatGPT, or Cursor at all, so no prompt can reach it.

### What happens to a Novu connection when someone leaves?

Offboarding a person in Elaichi ends their access to Novu through every client at once. If they had shared a Novu connection with a team, it keeps working for everyone else. If you want Novu gone entirely, disconnecting it once in Elaichi removes it from Claude, ChatGPT, Cursor, and every other client.

## All 121 Novu tools

Every tool below is callable through https://api.elaichi.ai/mcp once Novu is connected, subject to the toolbox it is in and the restrictions on the caller.

- **Create a Novu delivery provider activity event** (Create). Track activity and engagement events for a specific novu delivery provider by forwarding an inbound webhook payload. This endpoint accepts provider-generated event data (such as delivery status and engagement notifications) and forwards it to novu for processing. Required: environment_id, integration_id.
- **Create a Novu channel connection** (Create). Create a new novu channel connection for a resource and integration. Only one connection is allowed per resource and integration combination. Returns: identifier.
- **Delete a Novu channel connection by ID** (Delete). Delete a specific novu channel connection by its unique identifier. Returns an empty 204 response on success. Required: id.
- **List all Novu channel connections** (List). List all novu channel connections for a resource. Returns: identifier.
- **Get single Novu channel connection by ID** (Get). Retrieve a specific novu channel connection by its unique identifier. Returns: identifier. Required: id.
- **Update a Novu channel connection by ID** (Update). Update an existing novu channel connection by its unique identifier. Returns: identifier. Required: id.
- **Create a Novu channel endpoint** (Create). Create a new channel endpoint in Novu for a resource. Returns: identifier.
- **Delete a Novu channel endpoint by ID** (Delete). Delete a specific novu channel endpoint by id. Returns an empty 204 response on success. Required: id.
- **List all Novu channel endpoints** (List). List all novu channel endpoints for a resource. Returns: identifier.
- **Get single Novu channel endpoint by ID** (Get). Retrieve a specific novu channel endpoint by id. Returns: identifier. Required: id.
- **Update a Novu channel endpoint by ID** (Update). Update an existing novu channel endpoint by id. Returns: identifier. Required: id.
- **Create a Novu context** (Create). Create a new novu context with the specified type, id, and optional data. Returns the created context including its type, id, and data. Required: type, id. Returns 409 if a context with the same type and id already exists.
- **Delete a Novu context by ID** (Delete). Delete a novu context by id. Returns an empty 204 response on success. Required: id. Returns 404 if the context does not exist.
- **List all Novu contexts** (List). List all novu contexts, optionally filtered by type, id, or key pattern. Returns: type, id, data for each matching context. Filters type, id, and search are all optional.
- **Get single Novu context by ID** (Get). Retrieve a specific novu context by id. Returns: type, id, data. Required: id. Returns 404 if the context does not exist.
- **Update a Novu context by ID** (Update). Update the data of an existing novu context. Only the data field is modified; all other context fields remain unchanged. Returns: type, id, data. Required: id, data. Returns 404 if the context does not exist.
- **Create a Novu domain** (Create). Register a new inbound-email domain in novu. Returns: id, name, records, data — including the DNS records that must be added at the DNS provider before the domain can receive mail. Required: name.
- **Delete a Novu domain by ID** (Delete). Delete a novu domain by id, cascading deletion to all associated routes. Inbound mail for the domain stops being processed immediately. Returns an empty 204 response on success. Required: id.
- **List all Novu domains** (List). List inbound-email domains in novu for the current environment. Supports a name-contains filter. Returns: id, name, records, data for each domain.
- **Get single Novu domain by ID** (Get). Retrieve a novu domain by id. Returns the domain configuration and DNS records that must be in place, including id, name, records, and data. To refresh the verification status call verify instead. Required: id.
- **Update a Novu domain by ID** (Update). Update optional fields of a novu domain by id. Providing data replaces the entire metadata object; omit it to leave metadata unchanged. Returns: id, name, records, data. Required: id.
- **Novu domains verify** (Verify). Verify the DNS configuration of a novu domain by id, refreshing its verification status against live DNS. Returns: id, name, records, data. Required: id.
- **Novu domains diagnose** (Action). Diagnose DNS configuration issues for a novu domain by id. Returns: id, name, records, data. Required: id.
- **Novu domains get auto configure** (Get). Get the auto-configuration state for a novu domain by id. Returns: id, name, records, data. Required: id.
- **Novu domains start auto configure** (Start). Start the auto-configuration process for a novu domain by id. Returns: id, name, records, data. Required: id.
- **Create a Novu route** (Create). Create a route in novu that forwards inbound mail addressed to a specific email on a domain to either a webhook or an agent. Returns: id, address, domain. Required: domain, address. Each address on a domain may have only one route.
- **Delete a Novu route by ID** (Delete). Delete a novu route for a specific address on a domain. Removes the route so inbound mail to that address is no longer processed. Returns an empty 204 response on success. Required: domain, id.
- **Update a Novu route by ID** (Update). Update the destination of a novu route for a specific address on a domain. The address identity cannot be changed; delete and recreate the route to rename it. Returns: id, address, domain. Required: domain, id.
- **List all Novu domain routes** (List). List all routes attached to a Novu domain. Returns: id, address, domain. Required: domain.
- **Get single Novu domain route by ID** (Get). Retrieve a single Novu domain route by its address. Returns: id, address, domain. Use `*` as the id to fetch the wildcard route for the domain. Required: domain, id.
- **Create a Novu inbound route** (Create). Test a novu inbound route by sending a synthetic email through the same production delivery path (outbound webhook for webhook routes, signed HTTP for agent routes). Use dryRun to preview the payload without actually delivering. Returns delivery results that vary by route type and cannot be enumerated statically. Required: domain, address.
- **Create a Novu environment** (Create). Create a new novu environment for the current organization. Returns: _id, name, identifier, color, apiKeys. Required: name.
- **Delete a Novu environment by ID** (Delete). Delete a novu environment by id. This action is irreversible and removes the environment and all associated data. Returns an empty 204 response on success. Required: id.
- **List all Novu environments** (List). List all novu environments for the current organization, including each environment's configuration, API keys (if accessible), and metadata. Returns: _id, name, identifier, color, apiKeys.
- **Update a Novu environment by ID** (Update). Update a novu environment by id. Modify the environment's name, identifier, color, and other configuration settings. Returns: _id, name, identifier, color, apiKeys. Required: id.
- **Novu environments compare** (Action). Compare workflows and other resources between two novu environments, returning detailed diff information. Returns: additions, modifications, deletions. Required: id (targetEnvironmentId).
- **Novu environments publish** (Publish). Publish changes from a novu environment, promoting updates to the target environment. Returns an empty 204 response on success. Required: id.
- **List all Novu environment tags** (List). List all unique tags used in workflows within the current novu environment. These tags can be used for filtering workflows. Returns: name.
- **Create a Novu environment variable** (Create). Create a new environment variable in novu for the specified environment. Keys must be uppercase letters and underscores only (e.g. BASE_URL); secret variables are encrypted at rest and masked in responses. Returns: key, value, isSecret, _environmentId. Required: environment_id, key.
- **Delete a Novu environment variable by ID** (Delete). Delete a novu environment variable by key from the specified environment. Returns an empty 204 response on success. Required: environment_id, id.
- **Get single Novu environment variable by ID** (Get). Get usage information for a novu environment variable, showing where the variable is referenced within the specified environment. Returns: key. Required: environment_id, id.
- **List all Novu environment variables** (List). List all environment variables for a novu environment. Secret values are masked in responses. Returns: key, value, isSecret, _environmentId. Required: environment_id.
- **Update a Novu environment variable by ID** (Update). Update an existing novu environment variable. Per-environment values provided in `values` are merged by _environmentId; environments absent from the request keep their stored value. Submitting the masked secret placeholder as a value is rejected. Returns: key, value, isSecret, _environmentId. Required: environment_id, id.
- **Create a Novu event** (Create). Trigger a notification workflow event in novu for one or more specified subscribers. Returns: data object containing acknowledged, status, and transactionId. Required: name, to.
- **Novu events bulk create** (Create). Bulk trigger multiple notification workflow events in novu in a single request, avoiding repeated API calls. Returns: data array of trigger results each with acknowledged, status, and transactionId. Required: events. Limited to 100 events per request.
- **Delete a Novu event by ID** (Delete). Cancel a previously triggered novu workflow event by its transactionId, stopping any active or pending steps such as digests or delays. Returns an empty 204 response on success. Required: id.
- **Novu events broadcast** (Action). Trigger a broadcast notification workflow event in novu to all existing subscribers at once, useful for announcements and global notifications. Returns: data object containing acknowledged, status, and transactionId. Required: name.
- **Update a Novu integration by ID** (Update). Update an existing Novu integration by id. Returns the updated integration object including _id, providerId, channel, credentials, active, and primary. Required: id.
- **Create a Novu integration** (Create). Create a new Novu integration for the current environment. Returns the created integration object including _id, providerId, channel, credentials, active, and primary. Required: providerId, channel, credentials.
- **Delete a Novu integration by ID** (Delete). Delete a Novu integration by id. This action is irreversible. Returns an empty 204 response on success. Required: id.
- **List all Novu integrations** (List). List all Novu integrations for the organization. Returns an array of integration objects, each including _id, providerId, channel, credentials, active, and primary.
- **Novu integrations list active** (List). List all active Novu integrations for the organization. Returns an array of active integration objects, each including _id, providerId, channel, credentials, active, and primary.
- **Novu integrations set primary** (Set). Set a Novu integration as the primary integration for its channel by id. Returns the updated integration object including _id, providerId, channel, active, and primary. Required: id.
- **Novu integrations oauth URL** (Action). Generate an OAuth authorization URL for a Novu integration. Returns: url. Required: provider_id, environment_id.
- **Create a Novu layout** (Create). Create a new layout in novu. Returns: _id, name, identifier, content, isDefault, createdAt, updatedAt. Required: name, content.
- **Delete a Novu layout by ID** (Delete). Delete a novu layout by id. Returns an empty 204 response on success. Required: id.
- **Get single Novu layout by ID** (Get). Get a single novu layout by id. Returns: _id, name, identifier, content, isDefault, createdAt, updatedAt. Required: id.
- **List all Novu layouts** (List). List all novu layouts with optional filtering. Returns: _id, name, identifier, content, isDefault, createdAt, updatedAt per layout.
- **Update a Novu layout by ID** (Update). Update an existing novu layout by id. Returns: _id, name, identifier, content, isDefault, updatedAt. Required: id.
- **Novu layouts duplicate** (Duplicate). Duplicate an existing novu layout by id, creating a new copy. Returns: _id, name, identifier, content, isDefault, createdAt. Required: id.
- **Novu layouts generate preview** (Generate). Generate a rendered preview of a novu layout by id. Returns: content, subject. Required: id.
- **Novu layouts get usage** (Get). Retrieve workflow usage information for a novu layout by id, returning all workflows that reference the layout. Returns: workflows. Required: id.
- **Delete a Novu message by ID** (Delete). Delete a novu message by id. This action is irreversible and cannot be undone. Returns an empty 204 response on success. Required: id.
- **List all Novu messages** (List). List all messages for the current novu environment. Returns: _id, channel, transactionId, and _subscriberId per message. Supports optional filtering by channel, subscriberId, and transactionId.
- **Novu messages bulk delete** (Delete). Delete all novu messages associated with a specific transaction by transaction_id. Returns an empty 204 response on success. Required: transaction_id.
- **List all Novu notifications** (List). List all novu notification events for the current environment. Returns event records including _id, status, and transactionId. Supports optional filtering by channels, templates, emails, subscriberIds, transactionId, topicKey, severity, and contextKeys.
- **Get single Novu notification by ID** (Get). Retrieve a single novu notification event by its notificationId (MongoDB ObjectId). Returns event details including _id, status, and transactionId. Required: id.
- **Novu notifications bulk update** (Update). Archive all read in-app (inbox) notifications for a novu subscriber, with optional context-based filtering. Returns an empty 204 response on success. Required: subscriber_id.
- **Delete a Novu notification by ID** (Delete). Permanently delete a specific novu in-app (inbox) notification by its notificationId. Returns an empty 204 response on success. Required: subscriber_id, id.
- **Update a Novu notification by ID** (Update). Mark a specific novu in-app (inbox) notification as read by its notificationId. Returns the updated notification including _id and read. Required: subscriber_id, id.
- **Novu notifications mark all read** (Action). Mark all in-app (inbox) notifications as read for a novu subscriber. Returns an empty 204 response on success. Required: subscriber_id.
- **Novu notifications mark seen** (Action). Mark in-app (inbox) notifications as seen for a novu subscriber. Returns an empty 204 response on success. Required: subscriber_id.
- **Get single Novu topic subscriber by ID** (Get). Check if a subscriber belongs to a specific novu topic. Returns the subscriber-topic membership details including externalSubscriberId and topicKey. Required: topic_key, id.
- **Create a Novu topic** (Create). Create a new novu topic, or update an existing one if it already exists (upsert). Returns: key, name. Required: key, name. Pass failIfExists=true to return an error instead of updating an existing topic.
- **Delete a Novu topic by ID** (Delete). Delete a novu topic by its unique key identifier (topicKey). This action is irreversible and removes all subscriptions to the topic. Returns an empty 204 response on success. Required: id.
- **List all Novu topics** (List). List all novu topics. Returns: key, name. Results can be filtered by key or name using the corresponding query parameters.
- **Get single Novu topic by ID** (Get). Retrieve a single novu topic by its unique key identifier (topicKey). Returns: key, name. Required: id.
- **Update a Novu topic by ID** (Update). Update a novu topic's name by its unique key identifier (topicKey). Returns: key, name. Required: id, name.
- **Create a Novu topic subscription** (Create). Create subscriptions in novu for one or more subscribers to a topic. If the topic does not exist, it will be created automatically. Returns: subscriberId, topicKey, name, preferences. Required: topic_key, subscriberIds.
- **Delete a Novu topic subscription by ID** (Delete). Delete subscriptions in novu for one or more subscribers from a topic. Returns an empty 204 response on success. Required: topic_key.
- **List all Novu topic subscriptions** (List). List all subscriptions for a novu topic. Returns subscription records including subscriberId, topicKey, name, and preferences. Required: topic_key.
- **Get single Novu topic subscription by ID** (Get). Retrieve a single novu topic subscription by its identifier. Returns: subscriberId, topicKey, name, preferences. Required: topic_key, id.
- **Update a Novu topic subscription by ID** (Update). Update the name and preferences of a novu topic subscription by its identifier. Returns: subscriberId, topicKey, name, preferences. Required: topic_key, id.
- **Update a Novu subscriber notification by ID** (Update). Mark a specific novu subscriber message as read by its unique message id. Returns the updated message object including _id, read, seen, channel, templateIdentifier, content, and createdAt. Required: subscriber_id, id.
- **Novu subscriber notifications bulk update** (Update). Bulk mark novu subscriber messages with a specified read or seen status. Returns updated message objects including _id, read, seen, channel, templateIdentifier, content, and createdAt. Required: subscriber_id, status, messageId.
- **Novu subscriber notifications bulk delete** (Delete). Permanently delete novu subscriber messages, optionally filtered by feed. Returns an empty 204 response on success. Required: subscriber_id.
- **List all Novu subscriber notifications** (List). List in-app notifications from the feed of a novu subscriber. Returns notification objects including _id, read, seen, channel, templateIdentifier, content, and createdAt. Required: subscriber_id.
- **Novu subscriber notifications count** (Action). Retrieve the count of unseen in-app notifications for a novu subscriber. Returns: data. Required: subscriber_id.
- **Novu subscribers bulk create** (Create). Bulk create up to 500 novu subscribers in a single request. Existing subscribers with matching subscriberIds will be updated. Returns: updated, created, failed. Required: subscribers. Maximum 500 subscribers per request.
- **Create a Novu subscriber** (Create). Create a new novu subscriber, or update an existing one if the subscriberId already exists. Returns: subscriberId, firstName, lastName, email, phone, avatar, locale, data, channels, isOnline, createdAt. Required: subscriberId.
- **Delete a Novu subscriber by ID** (Delete). Delete a novu subscriber and all their associated messages, preferences, and topic subscriptions. Returns an empty 204 response on success. Required: id.
- **Get single Novu subscriber by ID** (Get). Retrieve a single novu subscriber by subscriberId. Returns: subscriberId, firstName, lastName, email, phone, avatar, locale, data, channels, isOnline, lastOnlineAt, createdAt, updatedAt. Required: id.
- **List all Novu subscribers** (List). Search novu subscribers by email, phone, subscriberId, or name. Returns per item: subscriberId, firstName, lastName, email, phone, isOnline, createdAt, updatedAt. Search is case sensitive.
- **Update a Novu subscriber by ID** (Update). Update an existing novu subscriber's attributes by subscriberId. Returns: subscriberId, firstName, lastName, email, phone, avatar, locale, data, channels, isOnline, updatedAt. Required: id.
- **Novu subscribers patch online status** (Action). Update the online presence status of a novu subscriber. Returns: subscriberId, isOnline, lastOnlineAt, firstName, lastName, email, updatedAt. Required: id, isOnline.
- **Novu subscriber preferences bulk update** (Update). Bulk update channel preferences for a novu subscriber across multiple workflows in a single request. Returns: level, enabled, channels, workflow. Required: subscriber_id.
- **Update a Novu subscriber preference by ID** (Update). Update channel preferences for a novu subscriber. Provide workflowId to update a specific workflow's preferences; omit it to update global preferences instead. Returns: level, enabled, channels, workflow. Required: subscriber_id.
- **List all Novu subscriber preferences** (List). Retrieve all channel preferences for a novu subscriber, including global preferences and per-workflow preferences across all five channels (email, sms, in_app, chat, push). Returns: level, enabled, channels, workflow. Required: subscriber_id.
- **Delete a Novu subscriber credential by ID** (Delete). Delete provider credentials for a novu subscriber by providerId. This action is irreversible and permanently removes all credentials stored for the specified provider (e.g. slack, fcm) on that subscriber. Returns an empty 204 response on success. Required: subscriber_id, id.
- **Update a Novu subscriber credential by ID** (Update). Update or fully replace provider credentials for a novu subscriber, such as Slack webhooks or FCM device tokens. Creates deviceTokens or replaces existing ones. Returns the updated subscriber object including _id, subscriberId, channels, createdAt, and updatedAt. Required: subscriber_id, providerId.
- **Novu subscriber credentials partial update** (Update). Partially update provider credentials for a novu subscriber without replacing the entire credential record. Only the fields supplied in the request body are modified. Returns the updated subscriber object including _id, subscriberId, channels, createdAt, and updatedAt. Required: subscriber_id, providerId.
- **List all Novu subscriber subscriptions** (List). List topic subscriptions for a novu subscriber, returning individual subscription records. Returns: topicKey, topicName, subscribed. Required: subscriber_id.
- **Update a Novu subscriber message by ID** (Update). Mark all novu in-app (inbox) notifications for a given subscriber as read, unread, seen, or unseen. Returns an empty 204 response on success. Required:id, markAs.
- **Update a Novu notification action by ID** (Update). Update the action status of an in-app (inbox) notification in novu for a specific subscriber and message. The action type id must be either 'primary' or 'secondary'. Returns: _id, status, channel. Required: subscriber_id, message_id, id, status.
- **Create a Novu translation** (Create). Create (or update if it already exists) a Novu translation for a specific resource and locale. Returns: resourceType, resourceId, locale, translations. Required: resourceType, resourceId, locale, translations.
- **Delete a Novu translation by ID** (Delete). Delete a specific Novu translation by resource type, resource ID, and locale. Returns an empty 204 response on success. Required: resource_type, resource_id, id (locale).
- **Get single Novu translation by ID** (Get). Retrieve a specific Novu translation by resource type, resource ID, and locale. Returns: resourceType, resourceId, locale, translations. Required: resource_type, resource_id, id (locale).
- **Novu translations import master** (Import). Import master translation JSON into Novu to define the reference locale's key-value translation pairs. Returns: translations. Required: translations.
- **Novu translations get master** (Get). Retrieve the Novu master translation JSON that defines the reference locale's key-value pairs used as the translation source. Returns: translations.
- **Novu translations upload master** (Upload). Upload a master translation JSON file to Novu via multipart form to set the reference locale translations. Returns an empty 204 response on success. Required: file.
- **Novu translations upload** (Upload). Upload a translation file to Novu via multipart form to bulk-import locale translations. Returns an empty 204 response on success. Required: file.
- **Delete a Novu translation group by ID** (Delete). Delete a novu translation group and all its associated translations by id. Returns an empty 204 response on success. Required: id.
- **Get single Novu translation group by ID** (Get). Retrieve a single novu translation group by id. Returns: id, resourceType, resourceId. The resourceType indicates the associated novu resource kind (workflow or layout) and resourceId is the corresponding resource identifier. Required: id.
- **Create a Novu workflow** (Create). Create a new workflow in the Novu Cloud environment. Returns the created workflow object including workflowId, name, active, status, steps, createdAt, and updatedAt. Required: name.
- **Delete a Novu workflow by ID** (Delete). Delete a Novu workflow by id. Returns an empty 204 response on success. Required: id.
- **List all Novu workflows** (List). List all workflows in the Novu Cloud environment with optional filtering. Returns an array of workflow objects each including workflowId, name, active, status, steps, createdAt, and updatedAt.
- **Get single Novu workflow by ID** (Get). Retrieve a specific Novu workflow by id. Returns the full workflow object including workflowId, name, description, active, status, origin, steps, preferences, createdAt, and updatedAt. Required: id.
- **Update a Novu workflow by ID** (Update). Update an existing Novu workflow by id. Returns the updated workflow object including workflowId, name, active, status, steps, createdAt, and updatedAt. Required: id.
- **Novu workflows sync** (Sync). Synchronize a Novu workflow to a target environment by id. Returns the synced workflow object including workflowId, name, active, status, origin, and updatedAt. Required: id, targetEnvironmentId.
- **Create a Novu workflow step** (Create). Generate a preview for a specific step in a novu workflow. Returns: result (the rendered step preview output). Required: workflow_id, step_id.
- **Get single Novu workflow step by ID** (Get). Retrieve data for a specific step in a novu workflow by step id. Returns: id, attributes (step-type-specific configuration). Required: workflow_id, id.
