Tourviaformerly RouteForce

Documentation Client Documentation TourviaApp 7.37.0

Tourvia Setup Guide

Implementation guide for Salesforce administrators


Tourvia branded edition. This document is formatted for client delivery and print/PDF export.

Version: TourviaApp 7.37.0 | September 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.37.0
  • Package rebaseline (7.22.0): the AppExchange-listed, Security-Review-passed managed package was renamed from Tourvia to TourviaApp. The namespace remains routeforce.
  • 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, and TourviaApp_Admin_Group wrap 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 against CheckInOnSiteRadiusMeters__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__c defaults 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).
  • TourviaApp 7.33.0 — Security & trust wave. Server-side licence enforcement on every Apex entry point — the 30-day trial and subscription rules now apply at the API level, not only in the UI (a diagnostic logging endpoint stays open so activation issues can always be troubleshot). Previous-visit context on markers, event modals and route steps is only served after verifying the caller can see the parent record. New installs ship the four package objects (Visit Reports, Route Histories, Saved Filters, Tourvia Logs) with a Private organization-wide default; existing orgs keep their current sharing setting on upgrade — switching them to Private in Setup → Sharing Settings is recommended (role hierarchies keep manager visibility). Route history step details are now readable by their owner only. Start-of-day visits follow the same scheduling rules as every other stop (lunch break, end of day, 15-minute rounding), the check-in confirmation names the event, agenda check-in/check-out buttons meet the 44 px touch-target standard, the route panel scrolls back to step 1 after an optimization, and the step contact picker always offers the account's full contact list regardless of how the stop was added. Validated by 2,500+ automated tests. Upgrading from 7.32.0 requires no manual FLS step (no new fields or objects in this release).
  • TourviaApp 7.37.0 — Planning consistency, accessibility, Agentforce and marker resilience. Changing route options now invalidates the previous schedule before Salesforce Events are created, so saved Events use the current times. Slow recalculations can no longer restore an obsolete step. Agentforce applies the recency filter before its result limit. Step actions receive reliable keyboard focus. An empty, invalid, or relationship-based marker type field no longer removes the marker; the marker remains available with no type value. No new fields or objects are introduced 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.37.0 on the AppExchange-listed, Security-Review-passed lineage.

Install Tourvia: open the public Tourvia AppExchange listing, then click Get It Now to install in your production, developer, or sandbox org.

TourviaApp 7.37.0 — safe onboarding sequence

  1. Install or upgrade the AppExchange package in a sandbox or approved org; do not configure production blindly.
  2. Assign the managed permission-set group to a pilot admin and pilot rep, then verify object and field access.
  3. Configure geocoding, routing credentials, and the CMDT defaults before inviting the wider team.
  4. Set and test Plan My Day limits, offline check-in queue/synchronization, and the P4 next-step options with a small set of records.
  5. Run a mobile pilot: plan a day, check in/out online, simulate loss of connectivity, wait for automatic sync or use Sync now, and confirm the Salesforce records.
  6. Only after the pilot passes, assign the relevant groups to the production users and document the rollback/contact path.

Supported visible labels: EN Plan My Day, Check in, Next step; FR Planifier ma journée, J’y suis !, Prochaine étape; ES Planificar mi día, Registrar visita, Siguiente paso.



1. Before you start

Prerequisites

  • Salesforce org with Lightning Experience enabled
  • System Administrator profile access
  • Tourvia package installation link (AppExchange listing or private install link)
  • Tourvia licence key and routing API key — delivered automatically by email after installation (see §2, “Licences and access credentials”)
  • 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.
  • Run the local data-readiness checker on a CSV export before map review. It reports field and coordinate signals locally; it does not establish address accuracy.
  • Review which objects your team needs on the map (Accounts, Leads, Opportunities).

2. Install the package

Tourvia is distributed through the public AppExchange listing. Open the listing and click Get It Now to install in your production, developer, or sandbox org.

Open the Tourvia AppExchange listing →

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.


Licences and access credentials

Since September 2026, access provisioning is automated through Salesforce's licence management:

  1. Production or developer org: when you install TourviaApp, Salesforce registers a 30-day per-seat trial licence. Tourvia is notified automatically and provisions your access: the installing administrator receives an email with a one-time secure link (valid 48 h) that reveals your Tourvia licence key and routing API key. Keep them safe — the link burns after one view.
  2. Assign the licence to users: the trial is per-seat. Go to Setup → Installed Packages → TourviaApp → Manage Licenses → Add Users and select every user who needs the app. Users without an assigned licence cannot open Tourvia.
  3. Sandbox org: Salesforce automatically applies a site-wide licence to sandbox installations and no credentials email is sent. Email support@gettourvia.com and we will issue sandbox access manually within one business day.
  4. Trial end: when the 30 days expire, access stops automatically. Contact us to convert to a paid subscription — no reinstallation is needed.

If the credentials email has not arrived within 15 minutes of installation, check spam, then write to support@gettourvia.com — we can re-issue a secure link.


3. Assign permission sets

TourviaApp 7.37.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:

  • 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
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 package callout access

Tourvia requires external access for routing, licence validation, and optional address enrichment. The required Remote Site Settings are included in the managed package and created automatically during installation.

Verify in Setup

  1. Go to Setup > Security > Remote Site Settings.
  2. Confirm the Remote Site Settings installed with the Tourvia package are marked Active.
  3. If a managed setting is missing, reinstall the current package version before continuing.

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, Primary Routing 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)
Primary Routing API Key API key for the Tourvia routing service
Fallback API Key Secondary routing key used when the primary routing service 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@gettourvia.comSupport 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:

  • LogPurgeSchedulable: purges Tourvia log records older than the configured retention period
  • UsageAggregationSchedulable: aggregates feature usage statistics
  • UsagePurgeBatch: purges aged usage tracking records every Sunday at 3:00 AM by default

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__c field on the Default record
  • Lightning App Builder: set the filterFields property 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
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:

  • 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 routeforce component
  • 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
Summary (TourviaApp ver 7.37.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:

  • ShippingLatitude / ShippingLongitude (if prefix is Shipping)
  • BillingLatitude / BillingLongitude (if prefix is Billing)

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:

  • Departure time
  • Lunch break window
  • End-of-day time
  • Default visit duration
  • Max route steps limit

11. Dashboards and reports

TourviaApp 7.37.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'

Phase 1: Admin validation (1-2 days)

  • Install the package
  • Assign RouteForce_Admin to 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_User to a small group of field reps (3-5 users)
  • Assign RouteForce_Manager to 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 Routing service 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. This can occur when 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 (Shipping or Billing)
  • 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.37.0)
  • Description of the issue and steps to reproduce

Tourvia • contact@gettourvia.com • gettourvia.com

End of document. Back to topDocumentation index