The branches feed is a CSV file containing a list of your physical locations (branches/stores). It can be used in different ways depending on your vertical:
- Retail & Commerce: Powers the Map block in Experience Emails.
- Restaurants: Provides the Stores/Branches list used for store-level targeting and restaurant-specific capabilities (for example, enabled channels such as Drive‑Thru/Kiosk/Mobile/Web).
You can either upload a CSV file to Dynamic Yield or host the file on your server and sync it via URL.
Choose your vertical
Create a new feed
- Go to Assets › Data Feeds.
- Click New and select Branches.
-
In Feed Source, choose one:
- Upload file: Manually upload a CSV. The feed updates on each upload.
- Hosted URL: Provide a URL.
- Review the preview (up to 100 branches), including errors and warnings.
- Click Save.
Feed upload options
- CSV File Upload – Upload a CSV file manually from your computer. The feed updates only when you upload a new file.
- Hosted File URL – Provide a URL where the feed file is hosted.
File requirements
- Maximum: 5,000 branches
- Encoding: UTF-8
- Format: CSV
Retail & Commerce feed
Required columns (column names are case sensitive):
|
Column (case sensitive) |
Description | |
| Id | Branch unique identifier | |
| Longitude | Branch longitude in decimal degrees (DD) format |
Coordinate format example: 41.40338, 2.17403 |
| Latitude | Branch latitude in decimal degrees (DD) format | |
| Url | Destination URL for CTA or map click (must start with HTTP/HTTPS) | |
| Name | Branch name | |
Create a new feed
The basic navigation and upload options are the same, but Restaurants accounts may manage the store feed from a Restaurants admin experience (depending on your setup).
Feed upload options
- CSV File Upload – Upload a CSV file manually from your computer. The feed updates only when you upload a new file.
- Hosted File URL – Provide a URL where the feed file is hosted.
File requirements
- Maximum: 50,000 branches
- Format: CSV
Restaurants feed
The feed must follow a predefined schema.
Field names are case sensitive and must match exactly as shown.
| Field name | Type | Mandatory | Notes / possible values |
| id | String | Yes | Store unique identifier |
| name | String | Yes | Store name |
| drive_thru | Boolean | Yes | TRUE / FALSE |
| kiosk | Boolean | Yes | TRUE / FALSE |
| mobile | Boolean | Yes | TRUE / FALSE |
| web | boolean | Yes | TRUE / FALSE |
| lab_location | Boolean | Yes | TRUE / FALSE |
| zip_code | String | Yes | Postal/ZIP code |
| latitude | Number | Yes | Decimal degrees |
| longitude | Number | Yes | Decimal degrees |
| global_location_ID | String | No | Global store/location id, if available |
| tags | String | No | Free text tags |
In addition to the schema above, you can extend the feed with custom attributes for targeting.
Custom Branch Attributes - allow you to enrich your branch data directly within the feed by defining custom columns (using the gv_ prefix). These attributes enable store-level targeting (for example: language, region, store type).
| Format | Column Name | Example |
| String | <"gv_column_name"> | gv_area_type |
Feed update behavior
Restaurants store feed uploads use an UPSERT operation:
- New stores are added
- Existing stores (same ID) are updated
- Stores are not deleted automatically
Example:
- Initial upload: 100 stores → 100 saved
- Next upload: 55 stores
- 50 new → added
-
5 existing → updated
- 50 new → added
- 5 existing → updated
- Stores not included in the new upload remain unchanged
Validation
-
Errors (block entire sync):
Missing mandatory column → upload fails -
Warnings (partial sync):
Missing mandatory value for a branch → that branch is skipped