Location Parsing
Inbound location parsing (Telegram + WhatsApp + Matrix) and the context fields involved.
OpenClaw normalizes locations shared in chat channels into:
- A human-readable text appended to the end of inbound text, and
- Structured fields in the auto-reply context payload.
Currently supported:
- Telegram (location pin + venue/POI + live location)
- WhatsApp (locationMessage + liveLocationMessage)
- Matrix (m.location using geo_uri)
Text Format
Locations are rendered as readable line text (no brackets):
- Location pin:
- π 48.858844, 2.294351 Β±12m
- Named place:
- π Eiffel Tower β Champ de Mars, Paris (48.858844, 2.294351 Β±12m)
- Live share:
- π° Live location: 48.858844, 2.294351 Β±12m
If the channel also carries a caption/comment, it is appended on the next line:
π 48.858844, 2.294351 Β±12m Meet here
Context Fields
When a message contains a location, the following are added to ctx:
- LocationLat (number)
- LocationLon (number)
- LocationAccuracy (number, in meters; optional)
- LocationName (string; optional)
- LocationAddress (string; optional)
- LocationSource (pin | place | live)
- LocationIsLive (boolean)
Channel Notes
- Telegram: Venues map to LocationName/LocationAddress; live locations use live_period.
- WhatsApp: locationMessage.comment and liveLocationMessage.caption are appended as caption lines.
- Matrix: geo_uri is parsed as "location pin (pin)"; altitude is ignored; LocationIsLive is always false.