docs/framework/deployment/cli.mdx
The Novu CLI provides a mechanism for you to synchronize your workflows into Novu Cloud so that non-technical Novu users can control the workflow and Step-level controls and enable your workflows to be triggered via Novu API.
<Tabs> <Tab title="US Region"> ```bash npx novu@latest sync \ --bridge-url <YOUR_DEPLOYED_URL_WITH_BRIDGE_ENDPOINT> \ --secret-key <NOVU_SECRET_KEY> \ --api-url https://api.novu.co ``` </Tab> <Tab title="EU Region"> ```bash npx novu@latest sync \ --bridge-url <YOUR_DEPLOYED_URL_WITH_BRIDGE_ENDPOINT> \ --secret-key <NOVU_SECRET_KEY> \ --api-url https://eu.api.novu.co ``` </Tab> </Tabs>If your application api server is running at URL https://api.domain.com and /api/novu endpoint is serving Novu workflows created using Novu Framework, then <YOUR_DEPLOYED_URL>in above command will be https://api.domain.com/api/novu
If your application is running on your local machine during local development (npx novu dev), the tunnel URL can be used as <YOUR_DEPLOYED_URL>. The tunnel URL follows the format of https://<UUID>.novu.sh/api/novu, and example is https://041e553c-0dbf-47e0-8ffa-c4536f390145.novu.sh/api/novu. In this example 041e553c-0dbf-47e0-8ffa-c4536f390145 is the unique tunnel identifier which is generated for each Novu user when starting a tunnel via npx novu@latest dev. The tunnel identifier is persisted to your local machine to guarantee the same tunnel URL each time you invoke npx novu@latest dev.
A successful sync prints the number of workflows and steps that were discovered from your bridge endpoint, for example:
{"status":"ok","sdkVersion":"2.10.0","frameworkVersion":"2024-06-26","discovered":{"workflows":14,"steps":30}}
You may also see the following message printed alongside a successful sync:
Could not discover agents for bridge URL sync (bridge may not expose agents yet).
This is an informational notice, not an error. It only indicates that your bridge does not expose any Agents at the sync endpoint. If you are only syncing workflows, you can safely ignore this message - your workflows and steps have still been synced.
After a successful sync, the bridge URL is stored on the environment you synced to. In the Novu Dashboard, open that environment and click the glowing status orb in the top-right navigation bar to view or update the Bridge Endpoint URL.
<Frame caption="The glowing orb in the Dashboard header shows the bridge URL for the selected environment.">  </Frame>For more detail, see View your bridge URL.
In free tier, vercel preview urls for non production deployments are not publicly accessible. You will need to enable Protection Bypass for Automation from settings to make the preview url publicly accessible. Use vercel generated secret key in query params with bridge url to make the bridge url accessible to novu.
Example: https://my-app-preview-url.vercel.app/api/novu?x-vercel-protection-bypass=BYPASS_SECRET_KEY