> For the complete documentation index, see [llms.txt](https://docs.diaflow.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.diaflow.io/workflow-builder/nodes/built-in-tools/get-geo-location.md).

# Get GEO Location

## Get GEO Location

### What does it do?

The **Get GEO Location** node converts a place into coordinates, or coordinates into a place name. Think of it like a delivery desk that can read an address and give you the map pin, or read the map pin and tell you the city.

It helps when your workflow needs a location in a simple format that later steps can reuse.

#### Smart features

* **Two simple modes**: use **Manual** when Diaflow should look up the location for you. Use **Local** when you already know the answer and just want to pass it through.
* **Works with earlier step data**: in **Manual** mode, you can insert values from previous nodes into **Value**.
* **City-first matching**: when you ask for a place name from coordinates, Diaflow looks for the city first. If no city is available, it may return the region or state instead.
* **Clean single result**: the node always returns one ready-to-use text value, so the next node can use it easily.

<figure><img src="/files/6Yw0ULdWGiRHolyKaj8D" alt=""><figcaption></figcaption></figure>

### Real-World Business Value

* Convert customer addresses into coordinates before sending them to a map, routing, or weather step.
* Turn mobile check-in coordinates into readable city names for reports, approvals, or support logs.
* Reuse known office or warehouse locations without doing the same lookup again.

### Step-by-Step Setup

* In **Method**, choose **Manual** if Diaflow should look up the location for you. Choose **Local** if you already have the final location value.
* In **Data to retrieve**, choose **City name** if you want a place name. Choose **Latitude and Longitude** if you want coordinates.
* If you chose **Manual**, fill **Value** with the right kind of input:
  * For **City name**, enter coordinates in `lat,lng` format, like `10.8231,106.6297`.
  * For **Latitude and Longitude**, enter a clear address, like `Ho Chi Minh City, Vietnam`.
  * You can insert data from a previous node into **Value**.
* If you chose **Local** and selected **City name**, enter the final value in **Local city**.
* If you chose **Local** and selected **Latitude and Longitude**, enter both numbers in **Local geo**.
* Run the workflow and check the **Output** tab.

<figure><img src="/files/agtK8fFEDLBUeDLZRJhR" alt=""><figcaption></figcaption></figure>

### The Transformation: Before & After

**Before — messy input from a form**

```json
{
  "Value": "Ho Chi Minh City, Vietnam"
}
```

**After — clean output from the node**

```json
{
    "output": "10.8230989,106.6296638"
}
```

The output is always one text value. It does not split latitude and longitude into separate fields.

<figure><img src="/files/ZsU5dXbkkpd6pbylOsar" alt=""><figcaption></figcaption></figure>

### Tips &  Warnings for First-Timers

#### Best practices

* Use full place names in **Value**, such as `Hanoi, Vietnam`, instead of short names like `Springfield`.
* Match the input to your selection in **Data to retrieve**.
  * Use coordinates when asking for **City name**.
  * Use an address when asking for **Latitude and Longitude**.
* Use **Local** mode when the city or coordinates are already known. This keeps the setup simple.
* Test with real sample data if the exact place label matters. Some locations may return a city, while others may return a province or state.

#### Warnings

* Do not leave **Value** empty in **Manual** mode. An empty value will fail the lookup.
* Do not enter unclear addresses. The node uses the closest match it finds, which can be wrong for broad names.
* Do not use variables inside **Local city** or **Local geo**. Enter final values there.
* Do not leave out either latitude or longitude in **Local geo**.
* Do not expect separate latitude and longitude fields in the output. The result comes back as one text string like `10.8231,106.6297`.
* Do not use anything other than **City name** or **Latitude and Longitude** in **Data to retrieve**.
* Avoid repeating the same live lookup when you already know the location. Use **Local** mode for fixed values.
* Very slow location lookups can delay the workflow. If the result is important, test the node before publishing.

### Need help?

* Learn the basics in [How a node works](/getting-started/lets-start-with-the-basics/how-a-node-works.md)
* Build the full flow in [Create a workflow](/workflow-builder/create-a-workflow.md)
* Browse related nodes in [Component List](/workflow-builder/component-list.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.diaflow.io/workflow-builder/nodes/built-in-tools/get-geo-location.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
