--- name: handoff-links description: Hand off food delivery, grocery shopping and train trips to Lieferando, Wolt, Uber Eats, Knuspr, Gurkerl or DB Navigator with a prefilled link that opens the user's app. Use when the user wants to order food, get groceries or a recipe's ingredients delivered, or find a train in or from Germany; you cannot order or book in these services yourself. user-invocable: false metadata: hybridclaw: category: productivity short_description: "Prefilled links into delivery, grocery and rail apps." tags: - food - delivery - groceries - train - travel - links --- # Handoff Links You can't order or book for the user at Lieferando, Wolt, Uber Eats, Knuspr, Gurkerl or Deutsche Bahn. Do the searching and thinking, then hand the last step to the user: a link that opens their app, or the website when the app is missing, with the search or the shopping list already filled in. The user picks, pays and confirms there. ## Rules - Never say you ordered, booked or reserved anything. Say what the link opens. - Do not order, book or pay on these sites with the browser. Wolt's terms forbid bots, and the others block automated browsers. Web search to find options is fine. - Build links only from the templates below. A restaurant page is fine only when a search result gave you its exact URL. Never invent a slug or an ID. - Percent-encode every value: space `%20`, `ä` `%C3%A4`, `ö` `%C3%B6`, `ü` `%C3%BC`, `ß` `%C3%9F`, `(` `%28`, `)` `%29`. A raw space breaks the link. - Write each link as a Markdown link on its own line. The label is short, in the user's language, and says what opens, for example `[Sushi in 80331 bei Lieferando](https://...)`. Never print a bare URL. - One link per service and at most three in a reply. - Use the postcode, city, home station and preferences you already know from memory or the conversation. When the link needs something you don't know, such as the postcode for Lieferando or the destination of a trip, ask once, briefly. - Remember which delivery service the user chooses and offer it first next time. ## Food delivery Offer the user's usual service. If you don't know it, start with Lieferando, which covers the most of Germany and Austria, and add Wolt and Uber Eats in large cities. | Service | Link | |---|---| | Lieferando, Germany | `https://www.lieferando.de/lieferservice/essen/?q=` | | Lieferando, Austria | `https://www.lieferando.at/lieferservice/essen/?q=` | | Wolt | `https://wolt.com/de///search?q=` | | Uber Eats | `https://www.ubereats.com/de/search?q=` | - Leave out `?q=…` to open every restaurant that delivers there. - Wolt: `` is `deu` or `aut`. `` is the city's English name in lowercase, with hyphens for spaces: `berlin`, `munich`, `hamburg`, `cologne`, `frankfurt`, `dusseldorf`, `stuttgart`, `nuremberg`, `vienna`, `graz`, `salzburg`. - Uber Eats asks for no place: the app uses the address saved there. - Neither Lieferando nor Wolt delivers in Switzerland. Offer Uber Eats there. ## Groceries: Knuspr and Gurkerl Knuspr (Germany) and Gurkerl (Austria) deliver groceries within hours. Their app has its own shopping assistant, Maia, which puts products into the user's cart. Hand Maia the list you made with the user: ```text https://www.knuspr.de/maiaQuery?prompt= https://www.gurkerl.at/maiaQuery?prompt= ``` - Settle the list with the user first: a recipe's ingredients for the number of servings, or the weekly shop. Leave out what they already have at home. - `prompt` is one German sentence that names every item with its amount, for example `Bitte in den Warenkorb: 2 Avocados, 8 Weizentortillas, 500 g Rinderhackfleisch`. Use plain product words, and brands only when the user asked for one. Keep it to about 25 items. - Show the list in your reply too, so the user sees what goes in, and label the link with what happens, for example `[5 Zutaten in den Knuspr-Warenkorb](https://...)`. - The link opens the Knuspr or Gurkerl app. Maia finds a product for each item and puts it in the cart, and the user checks the cart, picks a delivery slot and pays there. Say so; never say the order is placed. - Knuspr delivers around Berlin, Munich, Frankfurt and Rhine-Main, and Mannheim, Ludwigshafen and Heidelberg. Gurkerl delivers in Vienna and its surroundings. Elsewhere, say that they don't deliver there instead of sending the link. - If you have Knuspr tools from a connected Knuspr account, fill the cart with them instead, never place the order, and then link `https://www.knuspr.de/` so the app opens on the filled cart. ## Trains: DB Navigator ```text https://www.bahn.de/buchung/start?sts=true&so=&zo=&hd=&hza=D ``` - `so` and `zo` are stations or cities as DB writes them, for example `M%C3%BCnchen%20Hbf`, `Berlin%20Hbf`, `Frankfurt%28Main%29Hbf` or `K%C3%B6ln%20Hbf`. bahn.de looks the names up itself. - `hd` is the departure in German local time. With `hza=A` it is the arrival time instead. - Return trip: add `rd=`. First class: add `kl=1`. - Leave out travellers and BahnCard. DB Navigator uses the profile saved in it. - The link opens DB Navigator with the connections listed. Without the app, bahn.de shows the same search. ## Example The user writes "Lust auf Sushi heute Abend" and you know they live in 80331 Munich: ```markdown Hier ist Sushi in deiner Nähe: [Sushi in 80331 bei Lieferando](https://www.lieferando.de/lieferservice/essen/80331?q=sushi) [Sushi in München bei Wolt](https://wolt.com/de/deu/munich/search?q=sushi) ``` The user writes "Mach mir Tacos für 4 heute Abend, ich hab nur Gewürze da" and you know they live in Munich: ```markdown Das kommt in den Warenkorb: - 500 g Rinderhackfleisch - 8 Weizentortillas - 2 Avocados - 1 Limette - 200 g Schmand [5 Zutaten in den Knuspr-Warenkorb](https://www.knuspr.de/maiaQuery?prompt=Bitte%20in%20den%20Warenkorb%3A%20500%20g%20Rinderhackfleisch%2C%208%20Weizentortillas%2C%202%20Avocados%2C%201%20Limette%2C%20200%20g%20Schmand) ```