Bonsai-27B-GGUF
lmstudio-community · Kit
A GGUF conversion of the 27B Bonsai model for LM Studio, with a 3.80 GB Q1_0 language file and a 0.93 GB BF16 vision projector. Tested for text, vision and par…
An n8n workflow that answers a web request with a trip plan by email. Claude finds the airport codes and researches things to do, SerpApi searches Google Flights and Google Hotels, and Gmail sends the HTML plan.
Trip plan email with flights, hotels and activities is an n8n workflow in the Productivity category, listed by Mindket. It is free. This is version 1, last updated on . Download it on this page or copy its JSON, then import it into an n8n canvas. Nothing runs until you activate it in n8n.
Web request
It starts when a POST reaches the travel webhook with:
A trip plan email with two flights, three highly rated hotels and three activities, the hotels and activities linked
What you need before you start.
Language model
Runs Claude for the airport codes, the activity research with web search and the email itself.
NeedsAnthropic API key
Search
Searches Google Flights and Google Hotels for the trip’s dates and number of travelers.
NeedsSerpApi API key, as Query Auth
Sends the plan as an HTML email.
NeedsA Google account to sign in with
Checked by Mindket on 13 Nov 2026
This n8n workflow answers a web request with a travel plan by email. Another app posts the two cities, the dates, the number of travelers and the kind of activities wanted. Claude turns the cities into airport codes and researches activities on the web. SerpApi then finds hotels on Google Hotels and flights on Google Flights. Claude writes an HTML email around two flights, three hotels and three activities, Gmail sends it, and the caller gets a confirmation. Fourteen nodes run it.
Small travel agencies and trip planners who want a first draft for a client, and builders of voice or chat assistants who need a trip tool to call. Its reply is shaped for a voice agent’s end-call tool. Skip it if you want bookings made. It books nothing. The hotels and activities come as links, and the flights as plain lines with a price.
| Industry | Who uses it | How they use it | Example |
|---|---|---|---|
| Travel agencies | Agents who answer trip requests | Call it from the request form and read the plan before it goes to the client | An agent gets a Lisbon plan in the inbox and adds the hotel the client asked about. |
| Voice assistants | Builders of phone or web voice agents | Point the agent’s tool at the webhook and let it end the call on the reply | A caller asks for a week in Rome, and the agent says the plan is on its way. |
| Company travel | Office managers | Send each traveler their own plan by putting the request’s email in Send to | A manager plans a team’s trip to a conference, and each person gets the email. |
| Travel writing | Bloggers | Run a few city pairs to collect hotel and activity ideas | A blogger compares three weekend trips from Chicago before writing about them. |
You need a little n8n: importing a file, adding three credentials and sending a POST request. Its author puts setup at about 13 minutes.
Any n8n that can reach Anthropic, SerpApi and Gmail will run it, and anything that can send JSON can start it.
Get it saves a zip with workflow.json and Mindket’s setup notes in your downloads folder.
| Need | Detail |
|---|---|
| n8n | On n8n Cloud or on a server of your own |
| Anthropic | An API key, with web search on for Activities |
| SerpApi | An account and its API key, for the flight and hotel searches |
| Gmail | An account to send the plans from |
| A caller | Anything that can POST a JSON body: another workflow, a form tool, a voice agent or curl |
workflow.json.Anthropic Chat Model, Anthropic Chat Model1 and Activities.api_key as the name and your key as the value. Select it in Flights and Resorts.Send Plan and replace YOUR_EMAIL with the inbox for the plans. To mail each traveler, put {{ $('Set Fields').item.json.email }} there.Email Agent, replace YOUR_TEAM_NAME with the name to sign with.Webhook, then publish and use the production address.The webhook takes a POST at the path travel. Spell the departure date depature_date, as the file does, or that field arrives empty:
{
"origin": "Chicago",
"destination": "Lisbon",
"depature_date": "2026-12-12",
"return_date": "2026-12-19",
"travelers": 2,
"activities": "food tours and day trips",
"email": "you@example.com"
}Send the request to the webhook. The caller then waits. The answer comes only after the email is out, so Claude and both searches run first. Read the first plans in your own inbox before you point Send to at travelers.
| To change | Where |
|---|---|
| Sections, tone and length | The system message of Email Agent, which asks for a line after each section and at most 1,000 words |
| How many results the email names | The text of Email Agent, which lists flights [0] and [1] and hotels and activities [0] to [2] |
| Hotel order | sort_by in Resorts: 3 lowest price, 8 highest rating, 13 most reviewed |
| Activity research | The prompt of Activities and its limit of five searches |
| Model | claude-sonnet-5-5 in the two chat models and in Activities |
The request above goes in. Airport Codes & Dates answers in its parser’s shape, with Claude choosing the airports:
{
"origin": "ORD",
"destination": "LIS",
"departure": "2026-12-12",
"return": "2026-12-19"
}The email’s subject names the dates and Lisbon. Its body opens with a short welcome, then lists the two flights with airline, time, duration and price. The hotels follow with links and pictures, then the activities with links. The caller receives this, cut short here, with the subject at the end of description:
{
"type": "system",
"name": "end_call",
"description": "An email has been sent with the travel plan for: …",
"response_timeout_secs": 20
}If you are new. n8n draws a workflow as boxes joined by lines, and each box, a node, does one job. A webhook is an address that starts the workflow when something posts to it. Send the test request first. Then open each node in the run to see what it received and what it sent.
For experts. Three Claude steps share the work. Only the last writes for a reader.
| Node | Kind | What to know |
|---|---|---|
Airport Codes & Dates | A chain with a parser | Gets the current time, so it can move dates that lie in the past |
Activities | Anthropic’s own node with web search | Up to five searches and 4,000 tokens. Its JSON answer is never read |
Email Agent | An agent with a parser and no tools | Gets a fixed text built from the searches and returns subject and emailBody |
The file named claude-sonnet-4-20250514 in all three. Anthropic’s deprecations page, read on 2 November 2026, lists it as retired on 15 June 2026, so the copy here uses claude-sonnet-5-5, the replacement it names.
Three gaps in the prompt text change what the email says.
properties[2]. Change them to [0] and [1]Email Agent reads them from the raw search results, and their description is an encrypted string, so Claude writes it from the titleEmail Agent, and no email goes outAn n8n workflow that answers one web request with a travel plan by email. Another app, a form or a voice agent posts the
cities, the dates, the number of travelers and the kind of things to do. Claude turns the cities into airport codes,
searches the web for activities, and SerpApi finds flights on Google Flights and hotels on Google Hotels. Claude then
writes an HTML email with the three lists, Gmail sends it, and the request gets a one-line confirmation back.
workflow.json: the workflow as n8n exports it, fourteen nodes and no sticky notes. It holds no credential.README.md: these notes.Send Plan sent every plan to one personal address. It now sends to YOUR_EMAIL.YOUR_TEAM_NAME.claude-sonnet-4-20250514. Anthropic's deprecations page, read on 2 November 2026, listsclaude-sonnet-5-5, the replacement thatActivities uses Claude's web search, which is on unless an admin turned it off in the Claudecurl.workflow.json.Anthropic Chat Model, Anthropic Chat Model1 and Activities.api_key and the value is your key. Select it inFlights and Resorts.Send Plan. Replace YOUR_EMAIL in Send to with the inbox for the{{ $('Set Fields').item.json.email }} there.Email Agent, replace YOUR_TEAM_NAME with the name the email should be signed with.Webhook, send it the request below, then publish the workflow and use itsWebhook takes a POST at the path travel. Set Fields reads these fields from the JSON body. Spell the departure datedepature_date, as the file does, or that field arrives empty.
{
"origin": "Chicago",
"destination": "Lisbon",
"depature_date": "2026-12-12",
"return_date": "2026-12-19",
"travelers": 2,
"activities": "food tours and day trips",
"email": "you@example.com"
}
The answer comes back as JSON once the email is out. Its description holds the sentence from Response, and the rest
of it looks like the settings of a voice agent's end-call tool, so a voice agent can read the result and hang up.
Set Fields takes the seven values out of the request body.Airport Codes & Dates has Claude turn both cities into airport codes and check that the dates lie in the future,Locations & Dates holds its answer to origin, destination, departure and return.Activities asks Claude to research things to do of the requested kind at the destination, with up to five webResorts searches Google Hotels through SerpApi for the destination, the dates and the number of adults, sorted byFlights searches Google Flights through SerpApi between the two airport codes on those dates.Email Agent receives two flights, three hotels and three activities in a fixed text and writes the email as HTMLSubject & Email holds its answer to subject andemailBody.Send Plan sends it as an HTML email, Response writes the confirmation sentence and Respond to Webhook returns it.Email Agent. It asks for a horizontal line after each section,Email Agent, which lists flights [0] and [1], and hotels and[0] to [2].sort_by in Resorts. SerpApi's Google Hotels documentation gives 3 for lowest price,8 for highest rating and 13 for most reviewed.Activities, and its search limit of 5.claude-sonnet-5-5 in Anthropic Chat Model, Anthropic Chat Model1 and Activities.Email Agent text read properties[2]. Change those two to properties[0] and properties[1].Email Agent reads them from the raw search results in content[1] of the Activities answer, whichencrypted_content, an encrypted string, so Claude writes the descriptions from the titles. The JSON list theActivities prompt asks for is never read.Email Agent, and no email goes out.flights[0], so the second leg of a connection is left out.email is read but not used until you change Send to (step 4).Webhook node's Authentication if others could find it.README.md 6 KB workflow.json 20 KB
lmstudio-community · Kit
A GGUF conversion of the 27B Bonsai model for LM Studio, with a 3.80 GB Q1_0 language file and a 0.93 GB BF16 vision projector. Tested for text, vision and par…
LibertAIDAI · Kit
Runs DeepSeek-V4.1-Flash-1017 as a 2.9 bits-per-weight EXL3 quantization, a 196 GiB copy for people serving large models on their own hardware. Perplexity stay…
facebook · Kit
Generates short music clips from a text description or an audio prompt, in the small checkpoint of facebook's MusicGen. It suits developers and music hobbyists…
ACE-Step · Kit
Generates music from text with a 4B diffusion decoder, 50 steps and guidance control, aiming for higher audio quality than the base. For creators with a GPU of…
op7418 · Skill
Skill that makes single-file HTML slide decks, slide illustrations and platform covers in two visual styles, with a presenter mode for rehearsal. For speakers…
zarazhangrui · Skill
Builds HTML presentations from scratch or from a PowerPoint file and shows visual style previews to pick from, for people who want web slides with no CSS or Ja…