Understanding Locations
In Hiro CRM, a Location represents a physical restaurant or venue. Each location can have:- Unique settings and configurations
- Its own reservation system
- Separate staff and capacity
- Integration credentials (Cover Manager, Revo TPV)
- Custom branding (when grouped under brands)
Locations are the foundation of Hiro CRM’s multi-tenant architecture. All data like reservations, customers, and analytics can be filtered by location.
Creating Your First Location
Fill in Basic Information
Required fields:
- Name: The restaurant name (e.g., “La Tasca Claudio Coello”)
- City: Location city
- Marca: Associate with a brand if managing multiple concepts
- Address: Full street address
- Código Postal: Postal code
- Phone and Email: Contact information
Configure Settings
Set operational parameters:
- Capacidad Total: Total seating capacity
- Zona Horaria: Timezone (default: Europe/Madrid)
- Moneda: Currency (default: EUR)
- CoverManager Slug: Your Cover Manager location identifier
Location Data Structure
Each location in Hiro stores the following information:frontend/app/actions/locations.ts:11-35 for the complete type definition.
Managing Multiple Locations
Viewing All Locations
The Restaurantes settings page displays all your locations in a grid:- Active locations are marked with a green “Activo” badge
- Each card shows the location name, city, and brand
- Use the search bar to filter locations by name, city, or brand
Editing Locations
Deactivating Locations
To temporarily disable a location without deleting it:- Edit the location
- Uncheck Restaurante activo
- Save changes
Deleting Locations
Hiro uses soft deletes to protect your data:- Click the trash icon on a location card
- Confirm the deletion
Location-Based Features
Location Filtering
Most views in Hiro support location filtering: Dashboard: Select a location from the dropdown to view location-specific statsfrontend/components/dashboard/CustomizableDashboard.tsx:439-447
Analytics: Filter reports by location for insights
Reservations: View and manage reservations per location
Location-Specific Integrations
Each location can have unique integration credentials: Cover Manager:- Set
covermanager_slugto sync reservations - Configured in Location Settings
- Set
revo_tenantfor POS integration - Syncs orders and revenue data
frontend/lib/inngest/functions.ts:15-91 for sync workflows.
Brands and Multi-Concept Management
What are Brands?
Brands allow you to group locations under different restaurant concepts:- La Tasca (tapas concept) - multiple locations
- Manero Steakhouse (fine dining) - multiple locations
- Claudio Coello (flagship location)
Creating Brands
- Navigate to Settings > Marcas
- Click + Nueva Marca
- Configure brand identity:
- Name and slug
- Brand colors and logo
- Default settings for locations
Assigning Locations to Brands
When creating or editing a location:- Select a brand from the Marca dropdown
- The location inherits brand styling and settings
- Brand appears on location cards and reports
Multi-Location Workflows
Daily Operations Across Locations
- View All Locations
- Focus on One Location
- Compare Locations
Dashboard View: See aggregated stats from all locations
Syncing Multi-Location Data
Hiro automatically syncs data from all active locations:Automatic Sync
Background jobs sync each location’s data:
- Cover Manager: Every 30 minutes
- Revo TPV: Every 15 minutes
- Loyalty calculations: Daily at 2 AM
Manual Sync
Use the Sincronizar button on the Dashboard to force a sync:See
frontend/components/dashboard/CustomizableDashboard.tsx:367-383Best Practices
Consistent Naming
Use clear, consistent location names:
- ✅ “La Tasca - Claudio Coello”
- ✅ “Manero Steakhouse - Recoletos”
- ❌ “Location 1”
- ❌ “Test Restaurant”
Keep Slugs Stable
Don’t change slugs after initial setup. They’re used in:
- URLs and deep links
- API integrations
- External systems (Cover Manager, etc.)
Set Accurate Capacity
Configure realistic
total_capacity for each location:- Affects reservation availability
- Used in demand predictions
- Impacts staff recommendations
Use Brands for Reporting
Group locations by brand to get:
- Brand-level analytics
- Cross-location insights
- Consolidated reporting
Troubleshooting
Location not appearing in dropdown
Location not appearing in dropdown
Check that the location is active:
- Go to Settings > Restaurantes
- Find the location
- Ensure it has an “Activo” badge
- If not, edit and check Restaurante activo
Reservations not syncing for a location
Reservations not syncing for a location
Verify integration credentials:
- Edit the location
- Check
covermanager_slugis correct - Verify API keys in Settings > Integraciones
- Check sync logs for errors
Cannot delete a location
Cannot delete a location
Locations with reservations cannot be deleted:
- Check if the location has associated reservations
- If yes, deactivate instead of deleting
- Soft delete preserves historical data
frontend/app/actions/locations.ts:336-344 for deletion logic.Wrong timezone for a location
Wrong timezone for a location
Each location can have its own timezone:
- Edit the location
- Set Zona Horaria (e.g., “Europe/Madrid”)
- This affects reservation times and reporting
Next Steps
Now that you’ve set up your locations:Configure User Roles
Set up role-based access for your team across locations
Set Up Automations
Configure automated workflows for each location
View Analytics
Track performance across all your locations
API Overview
Access location data programmatically
