Grab Clappia’s 50% OFF Black Friday Deal before it’s gone! Ends 05 Dec 2025.
View offer →
#bf-banner-text { text-transform: none !important; }
Clappia Starter Template: Retailer Master Directory and Field Visit Logger Bundle

Clappia Starter Template: Retailer Master Directory and Field Visit Logger Bundle

By
Verin D'souza
May 1, 2026
|
15 Mins
Table of Contents

This guide is a configuration reference for building a field visit management system in Clappia. It covers two core apps, a Retailer Master Directory and a Field Visit Logger, and an optional third app for daily GPS route tracking. Each section provides the complete field list, block types, display conditions, formula references, and workflow actions needed to replicate the bundle from scratch.

The intended reader is someone building in Clappia who wants a concrete starting point rather than a conceptual overview. Use this as a checklist alongside your Clappia workspace. Adapt field labels, GPS boundaries, and workflow recipients to your organisation's structure as needed.

App Overview

AppCore FunctionWorkflows
Retailer Master DirectoryStores all retailer records. Acts as the data source for the visit logger's auto-fill. No workflows.None
Field Visit LoggerCaptures each store visit with OTP and GPS verification, standardised outcomes, and conditional follow-up fields. All automations trigger here.On save, on review
Daily GPS Tracking (optional)Records each rep's full day route and links individual visits to the route timeline.On save, on review

Build order: Always build the Retailer Master Directory first and populate it with retailer records before configuring the visit logger. The visit logger's lookup blocks and GPS comparison depend on master data being present.

Retailer Master Directory

App Settings

  • Name: Retailer Master Directory
  • Template: Blank
  • Sections: One section labelled 'Details'
  • Drafts: Enabled (for data administrator use)
  • Authentication: Required

Field Configuration

Field LabelBlock TypeRequired?Notes
Retailer IDSingle Line TextNoUnique identifier per store. Used by visit workflow to link visits to tracking record.
Retailer NameSingle Line TextNoUsed as search key and in notification messages.
Retailer Contact NumberSingle Line TextNoSecond search key in the visit logger.
GPS CoordinatesGPS Location blockNoDefault to current location on record creation. This is the store's registered coordinates used for proximity check.
Postal CodeSingle Line TextNoUsed for the postal code search path and embedded map filter in the visit logger. Adapt label to your region (PIN code, postcode, zip code).
Field Representative NameSingle Line TextNoContact assigned to this retailer.
Field Representative EmailSingle Line TextNoUsed in visit workflow for owner assignment.
Field Representative MobileSingle Line TextNo
Territory Manager NameSingle Line TextNo
Territory Manager EmailSingle Line TextNoUsed in visit workflow for owner assignment.
Territory Manager MobileSingle Line TextNo
ZoneSingle Line TextYesRequired. Used by visit workflow to look up zonal manager contacts.
RegionSingle Line TextYesRequired. Used by visit workflow to look up regional manager contacts.
TerritorySingle Line TextYesRequired.

Validation: Block New Records

Add a Validation block with a condition that always evaluates to true on a new submission. Set the error message to: 'New retailer records cannot be created here. Please contact your data administrator.' This prevents field representatives from adding stores through the visit form's lookup and keeps master data under centralised control. Editing existing records remains allowed.

Access

  • Data administrators: Full access to create and edit retailer records
  • All other users: No direct access. They interact with this app only through the visit logger's lookup blocks.

Field Visit Logger

App Settings

  • Name: Field Visit Logger (or Unplanned Retail Visits Logger)
  • Template: Blank
  • Sections: One section labelled 'Visit Details'
  • Submit button label: 'Record Visit'
  • Authentication: Required
  • Drafts: Disabled
  • View submissions: Disabled for field representatives
  • Post-submission message: Include the Submission ID so reps have a reference number after each visit.

Lookup Block 1: Search by Name or Contact Number

Add a Get Data from Other Apps block. Point it at the Retailer Master Directory. Configure the search to filter by Retailer Name or Retailer Contact Number. When a match is selected, auto-populate the following as read-only pulled fields:

Field to Populate in Visit FormSource Field in Master Directory
Retailer NameRetailer Name
Retailer IDRetailer ID
Retailer Contact NumberRetailer Contact Number
Store GPS CoordinatesGPS Coordinates
Postal CodePostal Code
Field Representative NameField Representative Name
Field Representative Email (raw)Field Representative Email
Territory Manager NameTerritory Manager Name
Territory Manager Email (raw)Territory Manager Email
ZoneZone
RegionRegion
TerritoryTerritory

Lookup Block 2: Search by Postal Code

Add a second Get Data from Other Apps block filtered by Postal Code. When used, this path populates the Postal Code field in the visit form and triggers the display of an embedded analytics view (see GPS Analytics Embed below). All other store detail fields remain empty through this path until confirmed; the postal code path is primarily for area-based discovery rather than full auto-fill.

Email Cleanup Formulas

Contact emails pulled from the master directory may carry stray whitespace from data entry. Add two hidden Formula blocks to produce clean values for the workflow:

Field Representative Email (clean): 

TRIM({Field Representative Email (raw)})

Territory Manager Email (clean): 

TRIM({Territory Manager Email (raw)})

Fields used: The two raw email fields pulled from the master directory.

What the formulas do: Strip leading and trailing whitespace from the email strings.

What the user sees: These are hidden from the form view. The workflow uses their output values for owner assignment.

OTP Verification

Field / BlockTypeDisplay ConditionNotes
Authenticator CodeNumber blockShow only at initial form state (before first submission)Rep enters the OTP obtained on-site
Verify OTPButton blockSame as aboveCalls external OTP validation API via REST action. Response stored in hidden 'OTP Response' field.
Valid OTP messageValidation blockShow when OTP Response = success valueDisplays: 'Valid OTP'
Invalid OTP messageValidation blockShow when OTP Response = failure valueDisplays: 'Invalid OTP'. Blocks submission.

GPS Capture and Proximity Check

FieldTypeDisplay ConditionNotes
Store GPS CoordinatesGPS Location (read-only, pulled)Always visible after retailer selectedPulled from master directory. This is the reference point for the proximity check.
Your Current LocationGPS Location blockVisible after Retailer ID is populated (i.e. retailer has been selected)Captures rep's live coordinates. Compared against store coordinates.
Distance diagnosticFormula or read-only fieldVisible to support users onlyShows haversine distance in metres between the two coordinate sets. Not shown to field reps.

GPS proximity validation: Add a Validation block that checks the distance between Your Current Location and Store GPS Coordinates. Set the boundary to 200 metres (adjust for your territory type). Error message: 'Your current location is more than 200 metres from this store. Please confirm you are at the correct location.' This blocks submission until the check passes.

GPS Analytics Embed

Add an embedded analytics view (a filtered report) that shows registered retailer locations on a map. Set its display condition to show only when the Postal Code field (populated by the postal code lookup path) has a value. This gives reps who search by postal code a visual reference of stores in that area. It does not appear for reps who use the name or contact number search path.

Visit Outcome Fields

FieldTypeRequired?Display Condition
Shop OpenSingle Selector (Yes / No)YesAlways visible
Order PlacedSingle Selector (Yes / No)YesAlways visible
Additional Products RequiredLong TextNoVisible only when Order Placed = No
Next Visit DateDate blockYes (when visible)Visible only when Order Placed = No

Remaining Fields

  • Submitter Name: Auto-populated from the logged-in user account. Always visible.
  • Submitter Email: Auto-populated. Display condition: visible only after the record has been saved (post-submission state). Used by the workflow to key the daily tracking record.
  • Guidance text: An HTML Text block explaining how to update a retailer's GPS coordinates via the dashboard if the stored location is inaccurate.

Field Visit Logger Workflows

Open Design App and then Workflows in the Field Visit Logger. Configure the New Submission Flow (on save) with the following actions in order:

Action 1: Assign Territory Manager as Owner

Add an Add Owner action. Set the owner email to the Territory Manager Email (clean) formula field. This gives the territory manager immediate visibility into the visit record.

Action 2: Look Up and Assign Regional and Zonal Contacts

Add a Get Data from Other Apps action in the workflow that queries a regional and zonal contacts mapping app using the visit form's Zone and Region values. Map the returned contact emails to variables. Add those emails as additional owners using separate Add Owner actions. If you do not have a contacts mapping app yet, use static email addresses per zone and region as a starting configuration and replace them with the dynamic lookup once the mapping app is built.

Action 3: Follow-Up Reminder (Conditional)

Add a Condition block: Order Placed = 'No'. Under the matching branch, add a Wait node configured to pause until the Next Visit Date at approximately 9 AM. After the wait, add a Mobile Notification action addressed to the submitter:

Reminder: Follow up with {Retailer Name} today. Products discussed: {Additional Products Required}

Action 4: Update Daily Tracking Record

Add an Edit Submission action that finds the submitter's current day tracking record (queried by Submitter Email and today's date in the Daily GPS Tracking app) and updates it with the Retailer ID of the current visit. If no tracking record exists, this action fails silently without affecting the visit submission.

Action 5: Push to External System

Add a REST API action that sends the visit payload to your external CRM or reporting system. Map the following fields in the request body:

Payload FieldSource
submissionIdClappia Submission ID (system variable)
submitterEmailSubmitter Email
retailerIdRetailer ID
retailerNameRetailer Name
orderPlacedOrder Placed
nextVisitDateNext Visit Date
additionalProductsAdditional Products Required
visitTimestampSubmission created timestamp

Configure error handling so a failed external push does not block the Clappia submission from saving. The on-review workflow can retry the push by applying a sync status to the record.

Daily GPS Tracking App (Optional)

App Settings

  • Name: Daily GPS Tracking
  • Template: Blank
  • Authentication: Required
  • Drafts: Disabled

Field Configuration

FieldTypeNotes
DateDate blockRequired. Default to today.
RoleSingle SelectorOptions: Field Representative, Territory Manager. Pre-set and not editable by end users.
Live TrackingLive Tracking blockStarts GPS route recording on activation. Auto-stops after 12 hours if not manually stopped. Immediately creates the tracking record when activated.
Starting GPS LocationGPS Location (read-only)Populated post-submission. Shows where the tracking session began.
End GPS LocationGPS Location (read-only)Populated post-submission.
Travel Start TimeTime (read-only)Populated post-submission.
Travel End TimeTime (read-only)Populated post-submission.
Distance TravelledNumber (read-only)Populated post-submission. Total distance in kilometres.
Submitter EmailSingle Line Text (auto)Stored for deduplication and workflow keying.
Submitter NameSingle Line Text (auto)Stored for external payload.

Validation: One Session Per User Per Day

Add a Get Data from Other Apps block that queries the Daily GPS Tracking app filtered by Submitter Email and today's date. Add a Validation block that fires when a matching record is found, showing: 'You have already started a tracking session today.' This prevents duplicate tracking records for the same user on the same date.

On-Save Workflow

  • Owner assignment: If Role = Field Representative, look up the correct territory manager email from a contacts mapping app using the submitter's email or phone. Add as owner. If Role = Territory Manager, apply equivalent logic.
  • External tracking summary: Add a REST API action (with a short Wait node to allow the tracking session to initialise) that sends the tracking payload: Submission ID, submitter name, role, date, starting and ending GPS, travel times, and distance.

Launch Checklist

ItemDone?
Retailer Master Directory built and all retailer records imported
GPS coordinates verified for at least a sample of retailer records
Visit logger lookup blocks pointed at the correct master directory app
OTP API endpoint configured and tested with a real device
GPS boundary set appropriately for your territory type
Email cleanup formulas verified: TRIM output matches expected email format
Workflow owner assignment tested: correct managers receive access on first visit
Follow-up reminder tested: mobile notification fires on Next Visit Date at 9 AM
External system push tested: visit payload arrives correctly formatted
Daily tracking linkage tested: visit record updates tracking session correctly
Field rep permissions configured: submit-only access, no view of other reps' records
Territory manager permissions configured: view access to their territory's visits
At least one end-to-end test completed using the Clappia mobile app on a real device
Offline submission tested: visit syncs and workflow fires on reconnect

Adapting This Template for Other Contexts

The bundle described here is built around retail field visits, but the underlying pattern applies to any field operations scenario where teams visit multiple fixed locations and need to record outcomes with presence verification. The following adaptations require changes to field labels and workflow recipients only, with the core logic remaining the same:

  • Service technician visits: Replace 'Order Placed' with 'Service Completed' and 'Additional Products Required' with 'Parts Required'. Replace retailer classification fields with client or site type classifications.
  • Healthcare field visits: Replace store outcome fields with patient visit outcomes. OTP and GPS verification remain applicable for compliance purposes.
  • Facility inspections: Replace order and product fields with inspection result fields. The GPS proximity check confirms the inspector was at the correct facility.
  • Distribution or logistics stops: Replace 'Order Placed' with 'Delivery Confirmed'. The follow-up reminder branch handles exceptions where delivery could not be completed.

In each case, the Retailer Master Directory becomes a Location Master Directory, the visit form's lookup pulls location data instead of retailer data, and the workflow's owner assignment is adapted to the management hierarchy relevant to that industry.

FAQ

Build Your Apps Today - Without Coding!

Build Your Apps Today - Without Coding!Get Started – It’s Free

Build Your Apps Today - Without Coding!

Summary

Close