Version: TourviaApp 7.32.0 | July 2026
Audience: Salesforce administrators during initial deployment
Goal: Install Tourvia, assign access, run the onboarding wizard, configure core settings, and validate the first working rollout
- Package rebaseline (7.22.0): the AppExchange-listed, Security-Review-passed managed package was renamed from
TourviatoTourviaApp. The namespace remainsrouteforce. - Today's Agenda — contact + tap-to-call phone (7.22.0, fixed in 7.25.0): events in Today's Agenda now show the related contact's name and a clickable phone (Mobile preferred, falls back to Phone). The 7.25.0 hotfix ensures the contact line also renders for Account events that carry a Contact in
WhoId. - Campaign as a 6th inline route entry (7.22.0): a Campaign picker now sits next to the Account / Lead / Opportunity / Event / Lasso / Nearby entry points. Pick a Campaign and all its geocoded members are added to the route in one click. CMDT-gated, so admins can disable it per org.
- Out-of-the-box FLS on standard fields (7.23.0): the managed permsets now grant Read FLS on compound addresses, the matching Latitude/Longitude pairs, and the phone fields on Account, Contact and Lead. Admins no longer have to grant this FLS manually.
- Three new Permission Set Groups (7.24.0):
TourviaApp_User_Group,TourviaApp_Manager_Group, andTourviaApp_Admin_Groupwrap the existing managed permsets so admins can extend access with their own custom permset added to the same PSG. - TourviaApp 7.26.0 — Configurable last-visit-date source. A new RouteForceConfig__mdt field,
LastVisitDateSource__c, lets admins choose whether the map "not visited since" filter (and the last-visit date + visit count shown on markers) is driven by VisitReport check-ins (default) or by past calendar Events. Works across Accounts, Leads, Opportunities and Campaign Members. Today's Agenda also gains a cumulative "C" badge for events whose contact/lead is a campaign member. - TourviaApp 7.29.0 — Fixed pivot date on the "Not visited since" filter. The filter dropdown gains a "Pick a date…" option revealing a date field: the map keeps only records with no visit on or after that date (never-visited records always included). Built for calendar-period coverage objectives — enter the first day of the current period to work toward 100% of the account base. The date persists in saved filters.
- TourviaApp 7.30.0 — On-site rate now honors the configured radius + quality wave. New VisitReport checkbox
IsOnSiteComputed__c, set by Apex at check-in againstCheckInOnSiteRadiusMeters__c(default 500 m); the RF_OnSiteRate report now uses it. Upgrading orgs: grant FLS on the new field in your local permsets (managed permsets are not refreshed on upgrade). Also in 7.30.0: usage tracking is now opt-in (EnableUsageTracking__cdefaults to false), routing error messages are fully localized (EN/FR/ES), route recalculations no longer inflate the ROUTE_CREATED adoption KPI, plus a stability wave (agenda loading state, race fixes on fast interactions, Contact Mailing↔Other address fallback on the agenda). - TourviaApp 7.31.0 — Route scheduling wave. One shared scheduler now drives optimization, drag-and-drop reordering AND manual time edits: meeting times no longer drift after a reorder (the clock departs at the displayed appointment + visit duration), the lunch break is enforced everywhere — including the new one-tap ±15 min adjustments (direction-aware crossing of the window) — stops that do not fit the working day are announced and kept visible unscheduled, and non-routable stops no longer shift subsequent times. Each step gains an inline appointment editor: tap the time → −15/+15 buttons with the rest of the day cascading live, native 15-min picker, Escape to cancel.
- TourviaApp 7.32.0 — Reliability & scale wave. Cursor-based map pagination removes the silent 4,000-marker ceiling (verified end-to-end at 10,000+ accounts — markers stream in the background); the route planner keeps a coherent start point after a reset or a late GPS fix and recalculates from the same point it optimized from; manually edited meeting times are honestly recomputed after a reorder (no stale manual badge); usage dashboards stay fast over time (12-month aggregates + automatic summary retention); heavily-visited accounts no longer distort the "Not visited since" filter; plus a security hardening pass (field-level-security gate on map filters) validated by 1,850+ automated tests. Upgrading from 7.31.0 requires no manual FLS step (no new fields or objects in this release).
Package lineage note: a separate fresh package, Tourvia 1.6.0, also exists but does NOT auto-upgrade to TourviaApp — they are different package IDs. Customers should install or upgrade to TourviaApp 7.32.0 on the AppExchange-listed, Security-Review-passed lineage.
1. Before you start
Prerequisites
- Salesforce org with Lightning Experience enabled
- System Administrator profile access
- Tourvia package installation link (provided by your Tourvia contact)
- Tourvia licence key
- ORS API key (provided for your environment)
- Optional: Fallback API key if applicable to your deployment
- Geocoded data (latitude/longitude) on the records you want to display on the map
Recommended preparation
- Confirm whether your org uses Shipping or Billing addresses for field visits.
- Identify pilot users and their roles (admin, manager, field rep).
- Verify that key Account records already contain latitude and longitude values.
- Review which objects your team needs on the map (Accounts, Leads, Opportunities).
2. Install the package
Tourvia is distributed through 30-day trial access today. Use the private install link shared by SKZ Consulting to install in your production, developer, or sandbox org; public AppExchange discovery is still pending.
Installation steps
- Open the installation URL in a browser where you are logged in as System Administrator.
- Select Install for Admins Only. You will assign users intentionally after validation.
- If Salesforce prompts you to approve third-party access for Tourvia callout endpoints, click Yes, grant access.
- Wait for the installation confirmation email from Salesforce.
Verify installation
SELECT Id, SubscriberPackage.Name, SubscriberPackageVersion.MajorVersion,
SubscriberPackageVersion.MinorVersion, SubscriberPackageVersion.PatchVersion
FROM InstalledSubscriberPackage
WHERE SubscriberPackage.Name IN ('TourviaApp', 'Tourvia')
The managed package node-name is TourviaApp (since 7.22.0); the namespace remains routeforce.
3. Assign permission sets
TourviaApp 7.32.0 ships with three managed permission sets and, since 7.24.0, three Permission Set Groups (PSGs) that wrap them. The PSGs are the recommended assignment path.
3.0 Permission Set Groups (recommended, since TourviaApp 7.24.0)
Subscribers cannot edit managed 2GP permission sets directly. The three PSGs let you extend access by creating one small custom permset (with your additional FLS or object access) and adding it to the matching PSG — effective access is the union of the managed permset and your overlay.
| Permission Set Group | Wraps | Intended audience |
|---|---|---|
TourviaApp_User_Group |
routeforce__RouteForce_User |
Sales reps and field users |
TourviaApp_Manager_Group |
routeforce__RouteForce_Manager |
Sales managers and team leads |
TourviaApp_Admin_Group |
routeforce__RouteForce_Admin |
Salesforce administrators |
Out-of-the-box standard object FLS (since TourviaApp 7.23.0)
The managed permsets now grant Read FLS on the standard fields Tourvia needs, so subscribers no longer have to grant them manually:
- Compound address fields (Salesforce only allows FLS at the compound level for these):
Account.BillingAddress,Account.ShippingAddress,Contact.MailingAddress,Contact.OtherAddress,Lead.Address - Matching Latitude / Longitude pairs on the same objects
- Phone fields:
Account.Phone,Contact.Phone,Contact.MobilePhone,Lead.Phone,Lead.MobilePhone
3.1 Contained permission sets (reference)
| Permission Set | Intended audience | Key capabilities |
|---|---|---|
RouteForce_Admin |
Salesforce administrators | Full configuration access. All 32 Apex classes. Both flows (RF_Onboarding, RF_CreateEvent). Read/write on all Tourvia custom objects. |
RouteForce_Manager |
Sales managers, team leads | Manager-level access. 17 Apex classes. viewAllRecords on Tourvia History and Visit Report objects. Can view team activity and reports. |
RouteForce_User |
Sales reps and field users | Standard daily access. 14 Apex classes. Own-record visibility only on History and Visit Reports. |
Assignment via Setup
- Go to Setup > Permission Set Groups.
- Open the desired PSG (e.g.,
TourviaApp_Admin_Group). - Click Manage Assignments.
- Click Add Assignment and select the appropriate users.
- Repeat for each PSG as needed.
Assignment via CLI
Preferred — assign the PSG:
sf org assign permsetgroup --name TourviaApp_Admin_Group --target-org <your-org>
sf org assign permsetgroup --name TourviaApp_Manager_Group --target-org <your-org>
sf org assign permsetgroup --name TourviaApp_User_Group --target-org <your-org>
Fallback — assign the namespaced managed permset directly (works on subscriber orgs):
sf org assign permset --name routeforce__RouteForce_Admin --target-org <your-org>
sf org assign permset --name routeforce__RouteForce_Manager --target-org <your-org>
sf org assign permset --name routeforce__RouteForce_User --target-org <your-org>
Verify assignments
Permission set assignments:
SELECT Assignee.Name, PermissionSet.Name
FROM PermissionSetAssignment
WHERE PermissionSet.Name LIKE 'RouteForce_%'
ORDER BY PermissionSet.Name, Assignee.Name
Permission Set Group assignments (and which permsets each PSG contains):
-- Users assigned to a TourviaApp PSG
SELECT Assignee.Name, PermissionSetGroup.DeveloperName
FROM PermissionSetAssignment
WHERE PermissionSetGroup.DeveloperName LIKE 'TourviaApp_%_Group'
ORDER BY PermissionSetGroup.DeveloperName, Assignee.Name
-- Permsets contained in each TourviaApp PSG
SELECT PermissionSetGroup.DeveloperName, PermissionSet.Name
FROM PermissionSetGroupComponent
WHERE PermissionSetGroup.DeveloperName LIKE 'TourviaApp_%_Group'
ORDER BY PermissionSetGroup.DeveloperName, PermissionSet.Name
TourviaApp_Admin_Group to yourself. Add pilot users with TourviaApp_User_Group or TourviaApp_Manager_Group only after you have completed validation (Section 10).4. Verify Remote Site Settings
Tourvia requires external access for routing, licence validation, and optional address enrichment. These Remote Site Settings should be created automatically during package installation. Verify that they exist and are active.
| Remote Site Name | URL | Required |
|---|---|---|
| RouteForce_ORS | https://ors.routeforce.app |
Yes |
| RouteForce_HeiGIT | https://api.openrouteservice.org |
Yes |
| RouteForce_BAN | https://api-adresse.data.gouv.fr |
Only if address enrichment is enabled |
Verify in Setup
- Go to Setup > Security > Remote Site Settings.
- Confirm each URL above is listed and marked Active.
- If any are missing, click New Remote Site and add the URL manually.
5. Launch the onboarding wizard
The RF_Onboarding flow has 4 screens: a Welcome screen, an API Keys screen where you enter your Licence Key, ORS API Key, and Fallback API Key, a Done confirmation screen, and an Error screen (displayed if key storage fails). Keys are stored securely via SecureConfigService into InternalConfig__c.
How to launch
- Open the Tourvia app from the App Launcher.
- Navigate to the Configuration tab.
- Click Run Onboarding (or the RF_Onboarding flow will launch automatically on first access).
API Keys screen
Enter the following credentials:
| Field | Description |
|---|---|
| Licence Key | Your Tourvia licence key (provided during purchase) |
| ORS API Key | API key for the Tourvia routing service |
| Fallback API Key | Secondary routing key used when the primary ORS endpoint is unavailable |
InternalConfig__c via the SecureConfigService class. They are never exposed in Custom Metadata or client-side code.After running the onboarding flow
After completing the RF_Onboarding flow, configure map defaults, feature toggles, and advanced settings directly in RouteForceConfig__mdt (Setup > Custom Metadata Types > RouteForceConfig > Default).
Map defaults
Configure the baseline map behavior:
| Setting | Default | Description |
|---|---|---|
| Address prefix | Shipping |
Which standard address fields to use (Shipping or Billing) |
| Default map layer | Standard |
Base map tile layer |
| Default zoom | 10 |
Initial zoom level when the map loads |
| Default display mode | both |
Show map and list simultaneously (map, list, or both) |
Feature toggles
Enable or disable features based on your business needs:
| Feature | Default | Description |
|---|---|---|
| Events | Enabled | Display Salesforce Events on the map |
| Leads | Enabled | Display Leads on the map |
| Opportunities | Enabled | Display Opportunities on the map (uses parent Account address) |
| Visit Reports | Enabled | Allow users to create visit reports from the map |
| Heatmap | Enabled | Enable the heatmap visualization layer |
| Bulk Select | Enabled | Allow multi-record selection on the map |
| CSV Export | Enabled | Allow exporting map data to CSV |
| History Naming | Enabled | Automatically name route history records |
| Usage Tracking | Enabled | Track feature usage for analytics |
| Contact Lookup | Enabled | Enable contact lookup on account markers |
| Quick Text | Enabled | Enable quick text templates in visit reports |
| Role Filter | Disabled | Filter records by user role hierarchy |
| Team Filter | Disabled | Filter records by team membership |
Advanced settings
| Setting | Default | Description |
|---|---|---|
| Cluster radius | 60 |
Pixel radius for marker clustering |
| Max route steps | 50 |
Maximum number of stops per optimized route |
| Not visited since (days) | 30 |
Highlight accounts not visited within this period |
| Check-in on-site radius (meters) | 500 |
GPS proximity required for on-site check-in |
| Log retention (days) | 30 |
Number of days to retain internal log records |
6. RouteForceConfig__mdt: Full configuration reference
All configuration is stored in the RouteForceConfig__mdt Custom Metadata Type — see the Configuration Guide for the canonical field list (44+ fields, evolving since 7.13.0). The onboarding wizard sets the most important values, but you can edit any field directly in Setup > Custom Metadata Types > RouteForceConfig > Manage Records.
| Field API Name | Default Value | Description |
|---|---|---|
AddressFieldPrefix__c | Shipping | Address field prefix (Shipping or Billing) |
ClusterRadius__c | 60 | Marker clustering pixel radius |
DefaultDisplayMode__c | both | Initial display mode |
DefaultMapLayer__c | Standard | Base map layer |
DefaultZoom__c | 10 | Initial map zoom level |
MaxRouteSteps__c | 50 | Max stops per route |
NotVisitedSinceDays__c | 30 | Days threshold for "not visited" highlight |
EnableEvents__c | true | Show Events on map |
EnableLeads__c | true | Show Leads on map |
EnableOpportunities__c | true | Show Opportunities on map |
EnableVisitReports__c | true | Enable visit report creation |
EnableHeatmap__c | true | Enable heatmap layer |
EnableBulkSelect__c | true | Enable multi-select on map |
EnableCSVExport__c | true | Enable CSV export |
EnableUsageTracking__c | true | Track feature usage |
EnableHistoryNaming__c | true | Auto-name route history records |
EnableRoleFilter__c | false | Filter by role hierarchy |
EnableTeamFilter__c | false | Filter by team |
ContactLookupEnabled__c | true | Contact lookup on account markers |
QuickTextEnabled__c | true | Quick text in visit reports |
CheckInOnSiteRadiusMeters__c | 500 | On-site check-in GPS radius (meters) |
LogRetentionDays__c | 30 | Log retention period (days) |
FilterFields__c | Account.Industry,Account.Type | Comma-separated list of filterable fields |
VisitReportCustomFields__c | result, routeforce__Satisfaction__c, nextAction, routeforce__OrderAmount__c, notes, routeforce__NextVisitDate__c | Fields shown in the visit report form |
VisitResultOptions__c | Positive,Neutral,Negative,No Answer | Picklist values for visit result |
CheckInNotePrefix__c | Check-in: | DEPRECATED: No longer used. Check-in data is stored in Visit Reports; Event Subject and Description are not modified. |
ContactQueryFields__c | Id,Name,Email,Phone,MobilePhone | Contact fields queried for account popup lookup |
ContactQueryFilter__c | null | Optional SOQL WHERE clause for contact queries |
EventOppLinkTarget__c | opportunity | Event-Opportunity linking target field |
LeadQueryFields__c | Rating,LeadSource | Lead fields included in marker data |
LeadQueryFilter__c | IsConverted = false | SOQL WHERE clause for lead queries |
OpportunityQueryFields__c | StageName,Amount,CloseDate | Opportunity fields included in marker data |
OpportunityQueryFilter__c | IsClosed = false | SOQL WHERE clause for opportunity queries |
RouteStepFields__c | null | Additional fields shown in route step cards |
SupportEmail__c | contact@routeforce.app | Support email shown in UI |
VisitAlertDays__c | 0 | Days threshold for overdue visit alerts (0 = disabled) |
SOQL check: verify active configuration
SELECT DeveloperName, AddressFieldPrefix__c, DefaultZoom__c,
EnableLeads__c, EnableOpportunities__c, EnableVisitReports__c,
MaxRouteSteps__c, EnableHeatmap__c, EnableBulkSelect__c
FROM RouteForceConfig__mdt
WHERE DeveloperName = 'Default'
RouteForceAction__mdt: custom map actions
Tourvia also includes the RouteForceAction__mdt Custom Metadata Type for configuring custom quick actions on the map (e.g., launching Screen Flows from marker popups). See the Configuration Guide for full details.
Scheduled jobs (auto-managed)
The package includes three scheduled jobs, automatically registered by the post-install handler:
LogPurgeSchedulable: purges Tourvia log records older than the configured retention periodUsageAggregationSchedulable: aggregates feature usage statisticsUsagePurgeBatch: purges aged usage tracking records on a weekly schedule
No manual scheduling is required. These jobs are registered automatically when the package is installed or upgraded.
7. Filter fields configuration
Tourvia uses a single comma-separated field to define which filters appear on the map. The default is:
Account.Industry,Account.Type
You can configure filters in two ways:
- RouteForceConfig__mdt: edit the
FilterFields__cfield on the Default record - Lightning App Builder: set the
filterFieldsproperty on the Tourvia component (overrides the CMDT value)
Filter field syntax
Each filter is an Object.FieldName path, comma-separated. Examples:
Account.Industry,Account.Type,Account.Rating,Opportunity.StageName,Lead.Status
Cross-object references are supported:
Opportunity.Account.Industry
Supported field types
- Picklist: renders as a dropdown
- Multi-Select Picklist: renders as checkboxes
- Boolean (Checkbox): renders as a toggle
8. Configure the default user experience
After the onboarding wizard, fine-tune the user experience by adjusting configuration values and the Lightning page layout.
Recommended starting defaults
| Setting | Recommended value | Reasoning |
|---|---|---|
| Address prefix | Shipping |
Most field visits happen at shipping/delivery sites |
| Map layer | Standard |
Clean, fast-loading base map |
| Display mode | both |
Map and list side by side for maximum context |
| Leads | Enabled if field teams prospect; otherwise disable | Reduces map clutter when not needed |
| Opportunities | Enable only if route planning involves deal stages | Keeps the map focused |
| Not visited since | 30 days |
Highlights accounts needing attention |
| Max route steps | 50 |
Covers a full day of visits for most territories |
| Cluster radius | 60 |
Good balance between readability and density |
Visit report configuration
The visit report form fields and result options are controlled by two configuration values:
| Setting | Default value |
|---|---|
VisitReportCustomFields__c |
result, routeforce__Satisfaction__c, nextAction, routeforce__OrderAmount__c, notes, routeforce__NextVisitDate__c |
VisitResultOptions__c |
Positive,Neutral,Negative,No Answer |
To add or remove fields from the visit report form, edit the comma-separated list in VisitReportCustomFields__c. To change the result dropdown options, edit VisitResultOptions__c.
Two levels of configuration
Tourvia is configured at two levels:
| Level | What it controls | Where |
|---|---|---|
| RouteForceConfig__mdt (org-wide) | Product behavior: feature toggles, map defaults, query filters, visit report fields, retention settings | Setup > Custom Metadata Types > RouteForceConfig > Default |
| App Builder properties (per page) | Visual presentation: which filter fields appear, legend colors by record type, marker popup content, multi-select rendering, address prefix | Lightning App Builder (on the Tourvia component) |
"Where do I change this?"
Which fields/filters/colors appear? → App Builder properties (per-page)
Enable/disable a feature? → CMDT RouteForceConfig.Default
Limits and defaults (zoom, radius)? → CMDT RouteForceConfig.Default
Custom action buttons? → CMDT RouteForceAction records
Only
addressFieldPrefix and filterFields cascade: App Builder overrides CMDT. Everything else is exclusive to one layer.For the complete reference with presets, see the Configuration Guide: Configuration Model.
Cloning the Tourvia page (recommended)
The default Tourvia page ships with generic settings. We strongly recommend cloning it to configure the legend, filter fields, and marker popups for your specific business:
- Go to Setup > Lightning App Builder.
- Find the Tourvia page and open it.
- Click Save As to create your own copy (e.g.,
RouteForce_MyCompany). - Click the Tourvia component on the canvas to adjust its properties:
- Filter fields: which filter fields appear in the sidebar
- Legend fields and values: marker color assignment for Accounts, Opportunities, and Leads
- Marker popup fields: which fields display when clicking a marker
- Multi-select fields: which filters render as checkbox lists
- Address prefix: override Shipping/Billing for this page
- Click Save, then Activation.
- In Page Settings, activate for all users (this creates a custom tab).
- Go to Setup > App Manager, find Tourvia, click Edit.
- Under Navigation Items, add your new tab and optionally remove the default one.
Embedding the map on Account, Lead, Opportunity, or Campaign pages
The Tourvia component can be placed directly on any Account, Lead, Opportunity, or Campaign (Campaign NEW in 7.20.0) record page. On Account / Lead / Opportunity, the map automatically centers on the current record's location and loads nearby records. On a Campaign record page, the layer is auto-scoped to that campaign and shows every geocoded member (resolved via the Lead or Contact parent address).
This gives field reps an instant geographic view of their territory right from any record they are working on.
- Go to Setup > Lightning App Builder.
- Open (or create) a Record Page for Account, Lead, Opportunity, or Campaign.
- Search for routeforce in the component panel and drag it onto the page.
- Configure the component properties (filter fields, legend, marker popups), the same properties as on the App Page.
- Save and activate the page for the appropriate record types or profiles.
Going further
Beyond the default app and record pages, the Tourvia LWC component (routeforce) is fully reusable. You can:
- Create dedicated App Pages: build separate pages with different configurations for different teams or use cases
- Build your own Lightning App: create a custom app with pages containing the
routeforcecomponent - Add to Home Page: place the map on a Lightning Home Page for instant territory overview
- Clone layouts, reports, and dashboards: use Save As on any managed layout, report, or dashboard to create your own version
- Use a configuration preset: the Configuration Guide includes 4 ready-to-use presets (Account-only, Sales team, Prospecting, Full operations) with exact values to copy-paste
RouteForceConfig__mdt.Default is the org-wide source of truth for both behavior (toggles, limits, queries) AND visual configuration (filters, marker colors, popup fields). The App Builder properties on the FlexiPage are an optional per-page override for cases where one specific page needs different settings (e.g. a Lead record page with a Lead-only filter set). For most orgs, configuring RouteForceConfig.Default is simpler and safer than editing App Builder properties.9. Verify your geocoded data
Tourvia plots records on the map using latitude and longitude fields. If these fields are empty, the map will appear blank.
Accounts
Depending on your AddressFieldPrefix setting, ensure either:
ShippingLatitude/ShippingLongitude(if prefix isShipping)BillingLatitude/BillingLongitude(if prefix isBilling)
Leads
Use the standard Latitude / Longitude fields on the Lead object.
Opportunities
Opportunities inherit the address from their parent Account. Ensure the parent Account is geocoded.
SOQL checks
Run these queries to verify data availability:
-- Accounts with Shipping coordinates
SELECT COUNT(Id)
FROM Account
WHERE ShippingLatitude != null AND ShippingLongitude != null
-- Accounts with Billing coordinates
SELECT COUNT(Id)
FROM Account
WHERE BillingLatitude != null AND BillingLongitude != null
-- Leads with coordinates
SELECT COUNT(Id)
FROM Lead
WHERE Latitude != null AND Longitude != null
-- Sample geocoded accounts
SELECT Id, Name, ShippingLatitude, ShippingLongitude, ShippingCity
FROM Account
WHERE ShippingLatitude != null
LIMIT 20
10. Run the full validation checklist
Before rolling out to users, complete this end-to-end validation as a user with RouteForce_Admin assigned.
Core functionality
- Open the Tourvia tab from the App Launcher.
- Confirm markers are visible on the map.
- Apply at least one filter and verify the markers update.
- Save a filter combination and reload the page to verify it persists.
- Add 3 to 5 stops to the route panel.
- Run route optimization and confirm distance and timing are calculated.
- Create a route visit (if visit reports are enabled).
- Check route history and confirm the record was saved.
Feature-specific tests
| Feature | Test | Expected result |
|---|---|---|
| Heatmap | Toggle the heatmap layer on | Heatmap overlay renders on the map with density shading |
| Bulk Select | Use lasso or area selection to select multiple markers | Selected records appear in the list panel; bulk actions are available |
| Saved Filters | Save a filter, refresh the page, re-apply the saved filter | Filter is persisted and applies correctly after reload |
| Visit Report | Check in at a stop and complete the visit report form | Visit report record is created with all configured fields |
| CSV Export | Export current map view to CSV | CSV file downloads with visible record data |
| Leads on map | Enable Leads and confirm Lead markers appear | Lead markers display with correct addresses |
| Opportunities on map | Enable Opportunities and confirm markers appear | Opportunity markers display at parent Account address |
Route settings validation
Verify that the route panel respects these settings:
- Departure time
- Lunch break window
- End-of-day time
- Default visit duration
- Max route steps limit
11. Dashboards and reports
TourviaApp 7.32.0 ships dashboards and reports for activity, pipeline, and route execution — see the Configuration Guide for the canonical list. They are ready for use by admins and managers out of the box.
Included dashboards
| Dashboard | Description |
|---|---|
| Tourvia: Field Activity | Sales manager dashboard: visit activity, on-site compliance, route efficiency, and team performance |
| Tourvia: Adoption & Usage | Admin dashboard: feature adoption, user activity, system health, and error monitoring |
Included reports (18)
Reports cover areas including:
- Route history and optimization usage
- Visit report summaries and completion rates
- User adoption and feature usage
- Territory coverage and not-visited accounts
- Check-in activity and GPS compliance
Find all reports in the Tourvia folder. Dashboards are in the Tourvia folder. Managers with RouteForce_Manager can view team-wide data; users with RouteForce_User see only their own records.
SOQL check: verify report folder
SELECT Id, DeveloperName, Name
FROM Folder
WHERE DeveloperName LIKE 'Tourvia%'
AND Type = 'Report'
12. Recommended rollout order
Phase 1: Admin validation (1-2 days)
- Install the package
- Assign
RouteForce_Adminto yourself - Run the onboarding wizard
- Verify Remote Site Settings
- Confirm licence activation
- Complete the full validation checklist (Section 10)
- Review dashboards and reports
Phase 2: Pilot users (1-2 weeks)
- Assign
RouteForce_Userto a small group of field reps (3-5 users) - Assign
RouteForce_Managerto their direct manager - Gather feedback on filters, marker fields, and route behavior
- Adjust defaults in RouteForceConfig__mdt, or clone the FlexiPage to customize (see Section 8)
- Test visit reports with real field data
Phase 3: Broader deployment
- Assign permission sets to remaining users
- Train users on route creation, optimization, and check-in
- Share the Tourvia User Guide internally
- Add more filter fields to FilterFields__c based on pilot feedback
- Set up dashboard subscriptions for managers
13. Common setup issues
| Issue | Likely cause | Resolution |
|---|---|---|
| Map is empty | No geocoded records, or wrong address prefix | Run the SOQL checks in Section 9. Switch AddressFieldPrefix if needed. |
| Licence error on load | Missing or invalid licence key | Re-run the onboarding wizard and enter the correct licence key. |
| Route optimization fails | ORS access blocked or invalid API key | Verify Remote Site Settings (Section 4) and API keys in onboarding. |
| Users cannot open Tourvia | Missing permission set or PSG | Assign the appropriate PSG: TourviaApp_User_Group or TourviaApp_Manager_Group (or, as a fallback, the underlying routeforce__RouteForce_User / routeforce__RouteForce_Manager permset). |
Nearby Contact / Campaign Member markers empty, or No such column OtherLatitude error |
Contact.OtherAddress (compound) FLS not granted on the user — typically because the user was assigned a permset before TourviaApp 7.23.0 and the 2GP upgrade did not refresh the assignment |
Re-assign the TourviaApp PSG (e.g., TourviaApp_User_Group) to the affected users so the 7.23.0 FLS deltas (compound addresses, lat/long, phones) land on the existing permset assignment. |
| Wrong addresses displayed | Incorrect address prefix setting | Change AddressFieldPrefix__c from Shipping to Billing or vice versa. |
| Too much clutter on map | All object types enabled with no filters | Disable unneeded objects (Leads, Opportunities) or adjust default filters. |
| Heatmap not rendering | Feature disabled in configuration | Set EnableHeatmap__c to true in RouteForceConfig__mdt. |
| Visit report fields missing | Incorrect VisitReportCustomFields__c value |
Edit the comma-separated field list in configuration to include the desired fields. |
| Bulk select not working | Feature disabled in configuration | Set EnableBulkSelect__c to true in RouteForceConfig__mdt. |
| Filters not showing expected fields | Filter field slots not configured | Verify FilterFields__c value in RouteForceConfig__mdt. |
| Manager cannot see team data | Wrong permission set or PSG assigned | Assign TourviaApp_Manager_Group instead of TourviaApp_User_Group (or, as a fallback, the underlying routeforce__RouteForce_Manager permset). |
14. Handover to operations
Before closing the setup phase, confirm the following items are documented and communicated:
- Address model chosen (
ShippingorBilling) - Enabled features and their rationale
- Configured filter fields (including any custom additions)
- Visit report field configuration
- PermissionSetGroup assignments (
TourviaApp_User_Group/TourviaApp_Manager_Group/TourviaApp_Admin_Group) and any custom permsets added to the PSG for extensibility - Designated Tourvia admin owner
- Support email or escalation path for Tourvia issues
- User Guide shared with field teams
- Dashboard subscriptions configured for managers
Support
For package access, licence activation, routing issues, or general questions, contact your Tourvia support channel. When reaching out, include:
- Your Salesforce org ID
- Environment type (Production or Sandbox)
- TourviaApp package version (
7.32.0) - Description of the issue and steps to reproduce
Tourvia • contact@routeforce.app • routeforce.app