Back to Novu

H3

docs/framework/quickstart/h3.mdx

3.19.03.1 KB
Original Source

In this guide, we will add a Novu Bridge Endpoint to a H3 application and send our first test workflow.

<Steps> <Step> ## Set up your local environment

Start local development by running:

bash
npx novu dev

This opens the Novu Dashboard in Local mode - a local environment connected to your running app through a tunnel - where you can preview and test the workflows running on your machine. See Local development for details.

</Step>
<Step> ## Install packages

Install the Novu Framework package:

bash
npm install @novu/framework

This package provides all the necessary tools to build and manage your notification workflows.

</Step>
<Step> ## Add a Novu API Endpoint ```typescript app/server/api/novu.ts
    const app = createApp();

    app.use("/api/novu", eventHandler(serve({ workflows: [testWorkflow] }) ));

    createServer(toNodeListener(app)).listen(4000);
    ```
</Step>
<Step>
    ## Configure your secret key

Add your Novu secret key to your environment variables:

bash
NOVU_SECRET_KEY=your_secret_key
</Step>
<Step>
    ## Create your workflow definition
    Add a `novu` folder in your app folder as such ```novu/workflows.ts``` that will contain your workflow definitions.
ts
import { workflow } from '@novu/framework';

export const testWorkflow = workflow('test-workflow', async ({ step }) => {
  await step.email('test-email', async () => {
    return {
      subject: 'Test Email',
      body: 'This is a test email from Novu Framework!',
    };
  });
});
</Step>
<Step>
    ## Start your application
    Start your H3 server with the Novu Endpoint configured.

    If your H3 application is running on a port other than `4000`, restart `npx novu dev` with that port:

    ```tsx
    npx novu@latest dev --port <YOUR_H3_APPLICATION_PORT>
    ```
</Step>
<Step>
    ## Test your endpoint

Test your workflow by triggering it from the Local environment or using the Novu API:

bash
curl -X POST https://api.novu.co/v1/events/trigger \
  -H 'Authorization: ApiKey YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "my-workflow",
    "to": "subscriber-id",
    "payload": {}
  }'

You should see the notification being processed in the Local environment.

</Step>
<Step>
    ## Deploy your application

Deploy your application to your preferred hosting provider. Make sure the /api/novu endpoint is accessible from the internet.

For local development and testing, you can use tools like ngrok to expose your local server to the internet.

</Step>
</Steps>

Now that you have your first workflow running, you can: