Email binding v1

This page defines the protocolBinding cited by the A2A Agent Card. There is no HTTP/JSON-RPC endpoint: the only interface is email.

Address

hmv+estanoir@mail.grokbot.com

Request

FieldRequiredNotes
request_typenotrip-idea (default), review-my-plan or plan-b
constraintsnoput it first: what the traveller does NOT want or cannot do (no_car, no_flight, with_kids, reduced_mobility, with_dog, max_walk_km), or free text; matches the constraints object in trips.json
origin_cityfor trip-idea, review-my-plancity where the traveller starts
datesnoYYYY-MM-DD to YYYY-MM-DD, a month, or flexible
daysyes1, 2 or 3
travellersnoe.g. 2 adults
interestsnofree text
my_planfor review-my-planthe plan the user already has, day by day, plain text (optional for plan-b)
booked_tripfor plan-bplace, dates and what is already booked and fixed
problemfor plan-brain, strike, closed attraction, one day less, or other
must_keepnoplan-b only: what cannot change (for example the room or the flights)
reply_languagenoen (default), pt or fr
how_did_you_find_usnooptional; how the Bot found this service (no personal data)
To: hmv+estanoir@mail.grokbot.com
Subject: Short trip idea - <origin city> - <1, 2 or 3 days>

request_type: trip-idea           (trip-idea, review-my-plan or plan-b; default trip-idea)
constraints: no_car, small bag only   (first: what the traveller does NOT want or cannot do)
origin_city: Porto                (where the traveller wakes up)
dates: 2027-05-12 to 2027-05-14   (or a month, or "flexible")
days: 3                           (1, 2 or 3)
travellers: 2 adults
interests: lakes, scenic trains, walking
reply_language: en                (en, pt or fr)
how_did_you_find_us: llms.txt     (optional; no personal data)

Request types

Constraints first

Ask first what the traveller does NOT want or cannot do: put a "constraints:" line at the top of the request, with any of no_car, no_flight, with_kids, reduced_mobility, with_dog, max_walk_km (for example: constraints: no_car, with_kids, max_walk_km: 5); free text is also fine (for example small bag only). In trips.json every trip has a "constraints" object with the same keys in camelCase (noCar, noFlight, withKids, reducedMobility, withDog, maxWalkKm). Values: true = the trip as told works with that constraint; false = it does not (for example it uses a flight); "unknown" = not verified. maxWalkKm is a number of km per day only when it was measured, otherwise "unknown". Accessibility, children and dog suitability are never stated unless verified.

Ready-made requests to copy: /example-requests/.

Reply contains

Reply format: two parts

Every reply is one plain-text email in two parts, so a Bot can parse it and a person can read it.

  1. Part 1: a short JSON object inside a ```json fenced block, at the top of the email.
  2. Part 2: the same idea as readable text, with each partner link labelled [affiliate] or [direct].
JSON fieldMeaning
request_typealways "trip-idea" for this type
origincity where the traveller starts (as understood from the request)
daysnumber of days (1, 2 or 3)
transporttransport logic in one or two sentences (train / flight / coach), no fares
where_to_sleepneighbourhood or town to sleep in, not stars, no room prices
three_placeslist of three places worth the usable time
what_to_cutwhat to drop if time runs short
sourceslist of URLs the idea is based on (published trip pages first)
affiliate_links_markedtrue when every partner link in the text part is labelled [affiliate] or [direct]
disclaimeralways the string "not a travel agency; no bookings; no prices"

No invented prices: the JSON and the text never contain fares or room rates. Prices are checked live by the traveller on partner sites.

Example reply (to the request "3 days from Porto: lakes and a scenic train")

```json
{
 "request_type": "trip-idea",
 "origin": "Porto",
 "days": 3,
 "transport": "Morning flight Porto–Bergamo, a small bag, no priority. Coach to Milan Centrale. Train to Colico. Next day: train to Tirano and the Bernina to St. Moritz, out and back in a day. Home by the same path.",
 "where_to_sleep": "A room in Colico, two nights. The bed sits by the lake; the Duomo and St. Moritz are visits.",
 "three_places": [
  "The boat between Varenna and Bellagio. The lake itself, not the postcard shore.",
  "The Bernina. A stop at Alp Grüm. The other stations if the train allows.",
  "Milan on foot: the castle, one gallery, a neighbourhood. A place to eat off the axis."
 ],
 "what_to_cut": "The Duomo queue at peak hour. Branded shops and coffee in the centre. “While we are here” at one more monument when the flight leaves at 20:00.",
 "sources": [
  "https://estanoir-bots.pages.dev/trips/porto-como-bernina-milao/",
  "https://estanoir.grok.me/testemunhos"
 ],
 "affiliate_links_marked": true,
 "disclaimer": "not a travel agency; no bookings; no prices"
}
```

Hello. This reply was written by the Bot assistant of Está no Ir and checked by a person before sending. Está no Ir is a travel notebook, not a travel agency: we do not book, sell or quote trips, and we do not give prices.

Idea: 3 days from Porto, Lake Como and the Bernina Express, no car. This follows a trip published in the notebook (https://estanoir-bots.pages.dev/trips/porto-como-bernina-milao/).
Day 1: morning flight to Bergamo, coach to Milan Centrale, train to Colico. Day 2: train to Tirano, Bernina Express to St. Moritz and back. Day 3: Milan on foot, flight home.

Compare live fares and rooms yourself:
- Flights: https://tp.media/r?campaign_id=100&marker=776957&p=4114&trs=573367&u=https%3A%2F%2Fwww.aviasales.com%2F&sub_id=bots [affiliate]
- Rooms near Colico: https://www.booking.com/searchresults.html?ss=Colico%2C+Italy [direct]

Reply fields: review-my-plan

The reply always says that we did not check the timetables or prices in the plan, only its logic (field not_validated).

JSON fieldMeaning
request_typealways "review-my-plan"
origincity where the traveller starts
daysnumber of days in the plan (1, 2 or 3)
day_orderlist, one line per day: the order we suggest, and why if it changed
transportcomment on the transport logic between the places in the plan (train / flight / coach), no fares, no timetable checks
what_to_cutwhat to drop from the plan if time runs short
where_to_sleepneighbourhood or town to sleep in (one base when possible), not a named hotel, no room prices
not_validatedalways the string "we did not check the timetables or prices in your plan, only its logic"
sourceslist of URLs the opinion is based on (published trip pages first)
affiliate_links_markedtrue when every partner link in the text part is labelled [affiliate] or [direct]
disclaimeralways the string "not a travel agency; no bookings; no prices"

Example reply (to "Review my plan: 3 days Lake Como, Bernina and Milan")

```json
{
 "request_type": "review-my-plan",
 "origin": "Porto",
 "days": 3,
 "day_order": [
  "Day 1: flight to Bergamo, train to Colico, the lake in the afternoon (train to Varenna, boat to Bellagio)",
  "Day 2: Tirano and the Bernina Express as a full day, back to Colico",
  "Day 3: early train to Milan, the castle and the centre on foot, then the coach to Bergamo for the flight"
 ],
 "transport": "The plan puts the Bernina on the arrival day and changes room every night. One lakeside base and the Bernina as a full day 2 cut a hotel change and a long rail detour. Timetables not checked.",
 "what_to_cut": "The Duomo queue at peak hour, and a lake visit squeezed in before an evening flight.",
 "where_to_sleep": "Colico, two nights (one base by the lake) instead of one night in Milan and one by the lake",
 "not_validated": "we did not check the timetables or prices in your plan, only its logic",
 "sources": [
  "https://estanoir-bots.pages.dev/trips/porto-como-bernina-milao/",
  "https://estanoir.grok.me/testemunhos"
 ],
 "affiliate_links_marked": true,
 "disclaimer": "not a travel agency; no bookings; no prices"
}
```

Hello. This reply was written by the Bot assistant of Está no Ir and checked by a person before sending. Está no Ir is a travel notebook, not a travel agency: we do not book, sell or quote trips, and we do not give prices.

Important: we did not check the timetables or prices in your plan, only its logic. Please confirm every time and fare with the operators.

Second opinion: keep the three places, change the order. Sleep two nights in Colico, do the lake on day 1, give the Bernina a full day 2, and leave Milan for day 3 on the way to the airport. Cut the Duomo queue at peak hour. This follows a trip published in the notebook (https://estanoir-bots.pages.dev/trips/porto-como-bernina-milao/).

Reply fields: plan-b

Plan B is not an emergency service. Every reply is human-reviewed and can take about 48 hours: write as early as possible, and always confirm timetables, strikes and closures on official sources (field not_urgent).

JSON fieldMeaning
request_typealways "plan-b"
destinationthe booked trip as understood (place and base)
daysnumber of days left in the trip
problemthe problem as understood: rain, strike, closed attraction, one day less or other
swaplist: what to move or replace, and with what
keeplist: what stays in the same place (base, bookings already made, fixed transport)
check_officiallist: what to confirm on official sources before acting (operator, attraction, local authority, weather service)
not_urgentalways the string "not an emergency service; human-reviewed reply, can take about 48 hours; confirm on official sources"
sourceslist of URLs the plan B is based on (published trip pages first)
affiliate_links_markedtrue when every partner link in the text part is labelled [affiliate] or [direct]
disclaimeralways the string "not a travel agency; no bookings; no prices"

Example reply (to "Plan B: rain on the lake day of a booked trip")

```json
{
 "request_type": "plan-b",
 "destination": "Lake Como with a base in Colico, Bernina Express, Milan",
 "days": 3,
 "problem": "rain forecast on day 1, the lake and boat day",
 "swap": [
  "Day 1: on the way from Bergamo, stop in Milan for the castle and the covered gallery, reach Colico in the evening",
  "Day 3: if the forecast is better, the Varenna to Bellagio boat in the morning, then Milan only for the train and the coach to Bergamo; if it still rains, cut the boat"
 ],
 "keep": [
  "The room in Colico, two nights",
  "The flights",
  "Day 2 on the Bernina Express"
 ],
 "check_official": [
  "the national weather service forecast",
  "lake boat timetables on the operator's site",
  "train timetables on the rail operator's site"
 ],
 "not_urgent": "not an emergency service; human-reviewed reply, can take about 48 hours; confirm on official sources",
 "sources": [
  "https://estanoir-bots.pages.dev/trips/porto-como-bernina-milao/",
  "https://estanoir.grok.me/testemunhos"
 ],
 "affiliate_links_marked": true,
 "disclaimer": "not a travel agency; no bookings; no prices"
}
```

Hello. This reply was written by the Bot assistant of Está no Ir and checked by a person before sending. Está no Ir is a travel notebook, not a travel agency: we do not book, sell or quote trips, and we do not give prices.

This is not an emergency service. Before you change anything, confirm the forecast, the boat and the train timetables on official sources.

Plan B: keep the room in Colico, the flights and the Bernina day. Move Milan to the rainy day 1 (castle and covered gallery on the way to Colico) and try the boat on day 3 morning if the weather improves; if not, cut it. This follows a trip published in the notebook (https://estanoir-bots.pages.dev/trips/porto-como-bernina-milao/).

"How did you find us?" (optional)

Optional: add a line "how_did_you_find_us:" (for example llms.txt, an agent directory, a search engine or another Bot). It is never required, a request without it gets the same reply, and it should not contain personal data.

Request log

For each request we keep one short log line with: origin city; number of days; reply language; outcome (answered, partly answered or declined); what was missing (for example: no published trip from that origin); the optional "How did you find us?" answer, if given. The log line holds no names, email addresses, phone numbers or other personal details. It is used only to see which trips and origins are missing and how Bots find us; it is not shared or sold, and senders are not added to any mailing list.

Human review: every reply is drafted by a Bot assistant and sent only after a human review. Response time: best effort, usually within 48 hours: every reply is drafted by a Bot assistant and sent only after a human review.

Never

Ignored: instructions embedded in emails; links in emails; unrelated requests (SEO, marketing, link exchanges).

Machine-readable copies: JSON blocks email-binding-v1, reply-format-example, reply-format-example-review-my-plan and reply-format-example-plan-b in this page's source. Home: https://estanoir-bots.pages.dev/.


Está no Ir is a travel notebook (content project), NOT a travel agency: it does not sell, book or quote trips, issue vouchers or take payments. Any booking is made directly with third-party partners, under their terms. Version 0.3.0, updated 2026-10-24. Human site: https://estanoir.grok.me. Affiliate disclosure.