Skip to main content
Solution accelerator
Customer-facing AI agents

Build a personalized travel agent with Signals

Set up a demo travel site, and integrate with Snowplow Signals to personalize content and chatbot responses based on user behavior.

Progress0%

For AI agents: a Markdown version of this page is at https://docs.snowplow.io/tutorials/signals-personalize-travel/setting-up.md. The index of all documentation pages is at https://docs.snowplow.io/llms.txt.

Run the demo Signals React travel application

Open in Colab

You'll now install and run the example travel website that you'll use to test Snowplow Signals personalization. This website represents a typical ecommerce travel platform where users browse destinations, read content, and interact with various features.

The demo website is part of the Snowplow Local repository. It's a React application.

Clone Snowplow Local​

Clone the Snowplow Local repository to your machine:

git clone git@github.com:snowplow-incubator/snowplow-local.git

Change directory into the snowplow-local folder:

cd snowplow-local

Configure environment variables​

Create an .env file based on the example file:

cp .env.example .env

Edit the .env file with your Signals connection credentials:

bash
NEXT_PUBLIC_SNOWPLOW_SIGNALS_API_URL=signals.snowplow.com
SNOWPLOW_SIGNALS_API_KEY=
SNOWPLOW_SIGNALS_API_KEY_ID=
SNOWPLOW_SIGNALS_ORGANIZATION_ID=
NEXT_PUBLIC_SNOWPLOW_COLLECTOR_URL=

If you plan to use the AI agent add an OpenAI API key (OPENAI_API_KEY) to your .env file.

Run the travel website​

Run the following Docker command:

bash
docker compose --profile travel-site up

Test the website​

Open the travel website in your browser at http://localhost:8086. You should see the homepage of the travel site.

Open your browser's developer console (Ctrl+Shift+I or equivalent) and go to the Snowplow Inspector tab. Generate some events by clicking on filters on the destinations page. You should see self-describing events firing into your Snowplow pipeline.

Explore the site to get familiar with its features before you define the attributes in the next step.