OpenClawSkills
GitHub
Channels β€’ TutorialHeader.readTime

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)

Tutorial.step

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:

Terminal
πŸ“ 48.858844, 2.294351 Β±12m
Meet here
Tutorial.step

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)

Tutorial.step

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.