Next.js
Implement the Layercode Webhook SSE API in your Next.js API Routes backend.
This guide shows you how to implement the Layercode Webhook SSE API in a Next.js backend using the Node.js Backend SDK. You’ll learn how to set up a webhook endpoint that receives transcribed messages from the Layercode voice pipeline and streams the agent’s responses back to the frontend, to be turned into speech and spoken back to the user.
Example code: layercodedev/example-fullstack-nextjs
Prerequisites
- Node.js 18+
- Next.js (App Router recommended)
- A Layercode account and pipeline (sign up here)
- (Optional) An API key for your LLM provider (we recommend Google Gemini)
Setup
Install dependencies:
Edit your .env environment variables. You’ll need to add:
GOOGLE_GENERATIVE_AI_API_KEY
- Your Google AI API keyLAYERCODE_API_KEY
- Your Layercode API key found in the Layercode dashboard settingsLAYERCODE_WEBHOOK_SECRET
- Your Layercode pipeline’s webhook secret, found in the Layercode dashboard (go to your pipeline, click Edit in the Your Backend Box and copy the webhook secret shown)NEXT_PUBLIC_LAYERCODE_PIPELINE_ID
- The Layercode pipeline ID for your voice agent. Find this ID in Layercode dashboard
Create Your Next.js API Route
Here’s a simplified example of the core functionality needed to implement the Layercode webhook endpoint. See the GitHub repo for the full example.
How It Works
- /api/agent webhook endpoint: Receives POST requests from Layercode with the user’s transcribed message, session, and turn info. The webhook request is verified as coming from Layercode.
- LLM call: Calls Google Gemini Flash 2.0 with the system prompt and user’s new transcribed message.
- SSE streaming: As soon as the LLM starts generating a response, the backend streams the output back as SSE messages to Layercode, which converts it to speech and delivers it to the frontend for playback in realtime.
See the GitHub repo for the full example which includes conversation history, welcome message and more.
Running Your Backend
Start your Next.js app:
Configure the Layercode Webhook endpoint
In the Layercode dashboard, go to your pipeline settings. Under Your Backend, click edit, and here you can set the URL of the webhook endpoint.
If running this example locally, setup a tunnel (we recommend cloudflared which is free for dev) to your localhost so the Layercode webhook can reach your backend. Follow our tunneling guide.
Test Your Voice Agent
There are two ways to test your voice agent:
- Use the Layercode playground tab, found in the pipeline in the Layercode dashboard.
- As this example is a full-stack example, you can visit http://localhost:3000 in your browser and speak to the voice agent in your browser using the React frontend included.