> 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)
