Tourvia Tourvia
Docs Request a 30-day trial
Client Documentation

Tourvia Setup Guide

Implementation guide for Salesforce administrators

Product
Tourvia
Version
TourviaApp 7.32.0 | July 2026
Format
PDF / Print-ready HTML
Tourvia branded edition. This document is formatted for client delivery and print/PDF export.

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

What's new in TourviaApp 7.22.0 → 7.32.0

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.

Install Tourvia: View the listing on the Salesforce AppExchange and click Get It Now to install in your production, developer, or sandbox org.

1. Before you start

Prerequisites

Recommended preparation


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.

Request a 30-day trial →

Installation steps

  1. Open the installation URL in a browser where you are logged in as System Administrator.
  2. Select Install for Admins Only. You will assign users intentionally after validation.
  3. If Salesforce prompts you to approve third-party access for Tourvia callout endpoints, click Yes, grant access.
  4. 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
Recommended pattern: assign the PSG, not the underlying permset. That way you can later add your own custom permset to the same PSG (for example, to grant access to a custom object or field) without cloning the managed permset.

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:

Upgrade caveat (2GP): a 2GP package upgrade does NOT re-apply permset deltas to subscribers. After upgrading from 7.22.0 or earlier to 7.23.0+, re-assign the PSG (or the underlying permset) once so the new FLS deltas land on existing users.

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

  1. Go to Setup > Permission Set Groups.
  2. Open the desired PSG (e.g., TourviaApp_Admin_Group).
  3. Click Manage Assignments.
  4. Click Add Assignment and select the appropriate users.
  5. 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
Recommendation: During initial setup, assign 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

  1. Go to Setup > Security > Remote Site Settings.
  2. Confirm each URL above is listed and marked Active.
  3. 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

  1. Open the Tourvia app from the App Launcher.
  2. Navigate to the Configuration tab.
  3. 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
Security note: All keys are stored securely in 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.

Upgrading from 7.12.0 → 7.13.0: The 8 new CMDT fields (legend / marker / popup) are created automatically, but Salesforce does not auto-update the CMDT page layout in subscriber orgs. To see and edit the new fields in the UI, go to Setup → Custom Metadata Types → Tourvia Config → Page Layouts and add the 8 fields manually (sections: Account / Lead / Opportunity / Marker Display). The fields are read by the LWC regardless — the layout step is only for the admin UI. See the Configuration Guide migration notes for the full procedure.
Field API Name Default Value Description
AddressFieldPrefix__cShippingAddress field prefix (Shipping or Billing)
ClusterRadius__c60Marker clustering pixel radius
DefaultDisplayMode__cbothInitial display mode
DefaultMapLayer__cStandardBase map layer
DefaultZoom__c10Initial map zoom level
MaxRouteSteps__c50Max stops per route
NotVisitedSinceDays__c30Days threshold for "not visited" highlight
EnableEvents__ctrueShow Events on map
EnableLeads__ctrueShow Leads on map
EnableOpportunities__ctrueShow Opportunities on map
EnableVisitReports__ctrueEnable visit report creation
EnableHeatmap__ctrueEnable heatmap layer
EnableBulkSelect__ctrueEnable multi-select on map
EnableCSVExport__ctrueEnable CSV export
EnableUsageTracking__ctrueTrack feature usage
EnableHistoryNaming__ctrueAuto-name route history records
EnableRoleFilter__cfalseFilter by role hierarchy
EnableTeamFilter__cfalseFilter by team
ContactLookupEnabled__ctrueContact lookup on account markers
QuickTextEnabled__ctrueQuick text in visit reports
CheckInOnSiteRadiusMeters__c500On-site check-in GPS radius (meters)
LogRetentionDays__c30Log retention period (days)
FilterFields__cAccount.Industry,Account.TypeComma-separated list of filterable fields
VisitReportCustomFields__cresult, routeforce__Satisfaction__c, nextAction, routeforce__OrderAmount__c, notes, routeforce__NextVisitDate__cFields shown in the visit report form
VisitResultOptions__cPositive,Neutral,Negative,No AnswerPicklist values for visit result
CheckInNotePrefix__cCheck-in:DEPRECATED: No longer used. Check-in data is stored in Visit Reports; Event Subject and Description are not modified.
ContactQueryFields__cId,Name,Email,Phone,MobilePhoneContact fields queried for account popup lookup
ContactQueryFilter__cnullOptional SOQL WHERE clause for contact queries
EventOppLinkTarget__copportunityEvent-Opportunity linking target field
LeadQueryFields__cRating,LeadSourceLead fields included in marker data
LeadQueryFilter__cIsConverted = falseSOQL WHERE clause for lead queries
OpportunityQueryFields__cStageName,Amount,CloseDateOpportunity fields included in marker data
OpportunityQueryFilter__cIsClosed = falseSOQL WHERE clause for opportunity queries
RouteStepFields__cnullAdditional fields shown in route step cards
SupportEmail__ccontact@routeforce.appSupport email shown in UI
VisitAlertDays__c0Days 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:

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:

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

Note: There is no hard limit on the number of filters. Add as many as your team needs, but keep it practical. Too many filters can slow the UI and confuse field reps.

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:

LevelWhat it controlsWhere
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)
Quick rule:
"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:

  1. Go to Setup > Lightning App Builder.
  2. Find the Tourvia page and open it.
  3. Click Save As to create your own copy (e.g., RouteForce_MyCompany).
  4. 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
  5. Click Save, then Activation.
  6. In Page Settings, activate for all users (this creates a custom tab).
  7. Go to Setup > App Manager, find Tourvia, click Edit.
  8. 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.

  1. Go to Setup > Lightning App Builder.
  2. Open (or create) a Record Page for Account, Lead, Opportunity, or Campaign.
  3. Search for routeforce in the component panel and drag it onto the page.
  4. Configure the component properties (filter fields, legend, marker popups), the same properties as on the App Page.
  5. Save and activate the page for the appropriate record types or profiles.
How it works: On a record page, Tourvia receives the record ID automatically from Salesforce. For Account/Lead/Opportunity it uses the record's geolocation to center the map and load nearby items. For a Campaign, it loads every geocoded member of that campaign as markers — useful to plan a tour around a specific campaign roster.

Going further

Beyond the default app and record pages, the Tourvia LWC component (routeforce) is fully reusable. You can:

Summary (TourviaApp ver 7.32.0): 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:

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
No geocoded data? You will need to geocode your records before Tourvia can display them. This can be done via Data Loader, a geocoding service, or Salesforce Data Integration Rules for standard address fields.

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

  1. Open the Tourvia tab from the App Launcher.
  2. Confirm markers are visible on the map.
  3. Apply at least one filter and verify the markers update.
  4. Save a filter combination and reload the page to verify it persists.
  5. Add 3 to 5 stops to the route panel.
  6. Run route optimization and confirm distance and timing are calculated.
  7. Create a route visit (if visit reports are enabled).
  8. 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:


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:

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)

Phase 2: Pilot users (1-2 weeks)

Phase 3: Broader deployment


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:


Support

For package access, licence activation, routing issues, or general questions, contact your Tourvia support channel. When reaching out, include:

Tourvia • contact@routeforce.app • routeforce.app