Configuration
You can use Woodford to set up some of the default settings of the Resco Mobile CRM app remotely. You can also prohibit users from modifying the settings. Edit an app project and select Configuration from the Project menu.
The list of parameters is divided into several groups. You can expand and collapse each group by clicking its header row.
Each row represents a configuration parameter.
- It is identified by a name, a description, and the default value - you cannot change these.
- Use the Value column to modify configuration. All changed options are displayed bold.
- Optionally, use the Lock checkbox to allow or disallow app users to override the setting in the app. If you lock a setting, the option actually disappears from the Setup section of the mobile app.
From the configuration screen, you can also access advanced configuration settings:
UI
Forms
Configure default settings that apply to all forms in your app project. Form-specific properties can override values configured on the project level.
- Full-Screen Forms: Show forms in full-screen mode.
- Allow Form Resize: Toggle between full-screen and compact (default) mode.
- Flexible Forms: Use Flexible Forms UI. If disabled, tabs are automatically added to the form.
- List Scrolling in Flexible Forms: Use vertical or horizontal (default) scrolling list in Flexible Forms.
- Auto Form Grid: The minimum width in pixels after which a form switches to the automatic grid mode.
- Save Button Action: The form’s save button action. The default is SaveOnly (save the record, but the form remains visible) for new entity, SaveAndClose otherwise. See How to set it up. Blog
- Reload After Save: Reload the form (re-read data) after Save.
- Show Collapse Button: Show Collapse Button(s) in Flexible Forms. If disabled, Collapse Buttons are removed from Flexible Forms.
- Form Caching: Select when should entity forms be reused. You can override this global setting in form properties.
- DefaultFormCaching: This is the default value, keeping legacy behavior. Only the default entity forms are reused (default = forms with the name "Default"). At most 6 recently used entity forms are kept in the cache. Forms coming from the Form Select rule are not reused.
- Warning: iOS app uses different default behavior. Forms are not cached at all. We kept this behavior for backward compatibility reasons.
- NoCaching: Form caching is completely disabled. A new instance of entity form is always created and the form is destroyed immediately once closed. Opening entity forms can take a much longer time than if it was reused from the cache. Form rules and JavaScript iframes can rely on the form being in the default state - all items are visible/enabled as expected.
- AllFormsCaching: Caching is enabled for every entity form including those coming from the FormSelect rule. Form rules and JavaScript iframes must expect that the form might be in a different state than the default state. Previously opened entity records could cause hiding/disabling some items or creating/removing them. It's strongly recommended for complex forms using FormSelect rules. Decreases the time to open forms dramatically and prevents memory issues (especially for forms with multiple iframes).
- Combined Booking Form: (Dynamics Field Service only) Show the Work Order form on the Bookable Resource Booking form.
- Guide Feedback Timeout: The time in seconds, after which the feedback form shows up after a guide preview is closed (0=never; max=1000).
List
Configure default settings that apply to all views (lists) in your app project. View-specific properties can override values configured on the project level.
- Auto List Grid: The minimum width in pixels, after which a list switches to the automatic grid mode.
- Auto List Header: Show the automatic list header (displaying cell names and allowing for sorting).
- Allow Advanced Find: Use Advanced Find and create custom personal lists. See Private view for details.
- Incremental List Search: Filter lists after every keystroke or wait for the ‘Enter’ key.
- Allow Multi-select In Lists: Allows users to select multiple records in views and calculate aggregates or execute custom commands.
- Associated List Editable: If True, the associated list is editable, i.e., users can create new records (only if the parent form is editable).
- Use Legacy List Buttons: (iOS, Android) Use in-line buttons or legacy view buttons.
- List Buttons Select Row: (iOS, Android) Clicking the inline buttons in a view automatically selects the row they belong to.
- For backward compatibility, the default behavior is "false" (rows are not selected automatically).
- When "true", the clicked row is selected. This behavior is consistent with Windows versions of the app.
Home Screen
Configure your home screen. If you choose to hide maps, dashboards, or Exchange, this setting overrides your Woodford design.
- Show Map: Show map(s). If disabled, map items are automatically removed from home screen.
- Show Dashboard: Show dashboard(s). If disabled, dashboard items are automatically removed from home screen.
- Show Exchange Home: Show Exchange Home item. If disabled, exchange items are automatically removed from home screen.
- Customize Home Screen: Show the “Show/Hide entities” button in the app’s Setup section. If True, the user can show or hide entities from home screen directly in the app.
Map, GPS
- Map Pin Aggregation: Allow the pin aggregation on the map (aggregate pins from the same approx. area). See feature introduction. News
- Map Pin Expansion: (iOS) Allow the pin expansion on the map (show contact details for related record).
- Distance Units: Force metric or imperial distance units instead of system defaults (Automatic).
- GPS Position Accuracy: The default accuracy (in meters) when resolving the current position.
- GPS Position Age: The default maximum age (in seconds) of the last result when resolving the current position.
The age and accuracy of the GPS position are used in several places in the app:
- Work Order Schedule form automatically updates GPS position whenever a field is changed while the work order is in the state "traveling".
- The UpdateGPS and UpdateAddress form commands (if you select to use the current location).
- The Check-In form command.
- When using the function SetGpsPosition in rules.
Legacy
- Use Legacy Charts: Use HTML charts or legacy charts.
- Use Legacy PDF Viewer: (Android only) Use the legacy PdfJS viewer or the native PDF viewer.
- Use Legacy Image Editor: Use the legacy image editor instead of the default advanced editor.
- Allow legacy low-security JS Bridge APIs: Turn on only when your JavaScript (Offline HTML) solution requires custom method invokes.
Other settings
- Show Related Activities: (Only applies to the related activity list.) Show Activities from related records. (Initial setting, user choice will be remembered.)
- Barcode Length: The required exact length of all scanned barcodes (0 – any length is acceptable).
- Web UI (experimental): Turn on the experimental web-based UI.
Windows
- Desktop FullScreen: The app should run in full-screen (true) or standard windowed mode (false).
- Desktop ScrollBar Width: The width in pixels of the form scrollbars.
- Ask User Before Exit: User confirmation is required to exit the app.
- Use Edge WebView2: (WindowsStore only) Select engine hosting in-app iframes in UWP app. WebView (default) is based on old Edge v18. Opt-in to use faster, modern WebView2 based on the latest Chromium-based Edge.
- Use Chromium Browser: Switches between two browser implementations. By default, (obsolete) Internet Explorer is used to render in-app Iframes instead of (modern) Chromium Embedded Framework. Wiki
Salesforce
- Disable prompt for Record Type: Disable automatic prompt for record type when user creates a new record.
- Disable multi-layout support: Disable automatic selection of forms based on Salesforce Layout Configuration. This also disables support for Picklist Values based on Record Type.
- Refresh layouts and Record Type mapping on first sync: When enabled, layouts and Record Type mappings are downloaded to the mobile app on every first sync after the application start. When disabled, these are only downloaded when a new app project version is available (feature introduction / FAQ entry).
- Prefer Salesforce Files over Attachments: Use Files as default object for generated content such as mobile reports and scanned business cards (CamCard). The Attachment object is used by default.
- Download only files linked to records (if enabled for entity): When syncing, skip files owned and shared by the current user. Download only files linked with entities where Sync linked entities is set to "All".
- Force legacy batch upload API: Use the less efficient Batch API for uploading records during synchronization (instead of the default Collections API). Consider the legacy API only if you experience issues with APEX triggers or when recommended by Resco support.
Dynamics
- Duplicate Detection: Use duplicate detection rule (configured in CRM) when a new record is saved to identify possible duplicate.
- CRM Login for Exchange: Automatically use user’s CRM login for Exchange login.
- User's language SSRS reports only: Show SSRS reports only for user’s language (current application language). Otherwise, reports for all languages can be selected.
- Use organization week settings: Use 'First Day of Week' and 'First Week of Year' options defined in the organization's system settings. Otherwise local culture standards will be used.
Data
Attachments, Media
- Max Upload Attachment Size: The maximum size of an attachment (documents, notes, email attachments) in bytes that can be created, captured, or attached in the app.
- Capture Photo Size: The maximum image resolution for photos taken in the app. Larger photos are automatically resized (aspect ratio is respected). Applies to capture from Resco Mobile CRM app.
- Upload Image Size: The maximum image resolution for images you upload to the app. Larger images are automatically resized (aspect ratio is respected). Applies to images uploaded to Resco Mobile CRM app. (Requires release 14.2.)
- Audio/Video recording quality: The recording quality for audio or video taken in the app. This setting affects the size of the recording.
- Recording quality depends on the platform and the specific device. For example, these are the settings for the Windows Store version of the app:
- Video Capture
- LowDefinition = The user can select resolutions up to low definition resolutions.
- StandardDefinition = The user can select resolutions up to standard definition resolutions.
- HighestAvailable = The user can select any resolution.
- Audio Capture
- High = Stereo, professional audio sampling rate (48 kHz), 192 kilobits per second (kbps) data transfer rate.
- Medium = Stereo, CD-quality sampling rate (44.1 kHz), 128 kilobits per second (kbps) data transfer rate.
- Low = Mono, CD-quality sampling rate (44.1 kHz), 96 kilobits per second (kbps) data transfer rate.
- Android app ignores these settings. Windows Desktop app doesn't support audio/video capture.
- Allow Photo Cropping: Show the photo cropping step after a photo is taken.
- Save Signature As PNG: Store the signature as an SVG (vector image) or a PNG (bitmap image).
- Supply GPS for captured images: (iOS only) Supply current GPS location info if it's missing in captured image metadata (EXIF). See also: GPS information in image metadata.
- Save captured images to gallery: Whenever you take a photo in the app, it is also saved to the platform-specific gallery/photos folder.
- Plain text file viewer encoding: (Windows 10) Specify preferred encoding when viewing plain text attachments.
Delete Behavior
- Allow User to Delete Data: Show/Hide the ‘Delete Data’ button in the app Setup section.
- Cascading Delete: If set to ‘True’, deleting a record also deletes its child records and attachments.
- Cascading Remove Link: If set to ‘True’, deleting a record also removes any link to that record. (All lookups pointing to that record are set to null.)
Other settings
- Ignore Missing Process Flow: If false, error is shown if the Business Process Flow is not found.
- Trigger events on Business Process Flow changes: Determines if field changes in the Business Process Flow component on entity forms trigger the OnChange event. Default is false.
- Use Entity & Attribute Map: Use the Entity and Attribute Mappings (configured in CRM) when creating a new record.
- Use Sql Like Optimization: Using this (SQLite) optimization can increase the BeginsWith operator performance for large data sets. (E.g. speed up incremental search.)
- Max Export Records: The maximum number of records to export (in the ‘Export’ command), (-1 – no limit).
- Hide Locked Settings: Locked options in the Configuration section in Mobile Project are hidden in app’s Setup form.
- Auto Save Product Detail:
- True - All changes to a sales product detail record (e.g. OrderProduct) performed on its form are immediately applied to the product detail list item.
- False - Changes only apply when you save the record. If you don't save, changes can be discarded.
- On Salesforce, the setting is not supported. The behavior is always 'False', i.e., you have to save manually.
Security
Passwords
- Save Password: If password is not stored, password entry is required each time the app is opened or maximized.
- Require Sync Login: Sync dialog with login details (URL, username, password) is displayed before the sync. Disabling this option effectively enables background sync.
Certificates
- Verify Server Certificate: Refuses server connection if the HTTPS certificate is invalid or self-signed.
- Pinned Server Certificate: Refuses server connection if the HTTPS certificate does not match SHA1 fingerprint [5A D5 58 21 9D 72 19 8B 6C A5 E6 3D 1F 96 6F 22 95 C3 D1 14] (Public key fingerprint encoded into hexadecimal strings.)
Other settings
- MSAL mode: Determines whether to use Microsoft Authentication Library for OAuth login and in which mode. See MSAL_authentication for details.
- Use Database Encryption: Encrypt the device database that stores the offline CRM data.
- Enable Customization Security: Enables the Offline HTML and customization files content verification.
- Use system OAuth: Controls whether to use system dialog for OAuth login (default). Switch off to force in-app login.
- OAuth Offline token age: Lifetime of the OAuth offline token in seconds (0 – unlimited. Default: 0). (Min is 0, Max is 2147483647.)
- This setting allows Woodford admins to configure the validity period of OAuth tokens that differs from server settings. Naturally, it only works to make it shorter, not longer. The usual use case is that the same server OAuth policy is used for all profiles, but for certain app projects, admins might want the period to be shorter (e.g. contractors). Of course, it is more secure to have it set up on the server; however, in some setups, this is not possible, hence this parameter.
Online Mode
- Online Mode: Set when the Online mode option is available or activated. (Always-runs always in online mode, WifiOnly-runs in online mode when the device is connected to internet via Wi-Fi, Manual-switch between Online and Offline manually, Never-online mode is always switched off.)
- Allow User Mode Switch: The user can toggle between online and offline mode via a button.
- No Lock in Online: (Dynamics only) Server should take no lock during read. Prevents server deadlocks but can read uncommitted dirty data.
- Sync before going Online: Sync before going into Online Mode.
- Sync before going Offline: Sync before going into Offline Mode.
PIM/Email
Reminders, Calendars, Contacts, Emails
- Use Reminders: Use the device’s notifications for configured entities. Configure in Events & Reminders section.
- Show Personal Events: Show personal events from personal calendar (system calendar) in the App Calendar.
- Show Personal Contacts: Show personal contacts in the app, in a merged view with CRM records (contact entity).
- Send Meeting Invitations: Send meeting invitations when Appointment is modified.
- Use CRM Email: When sending emails use CRM email (email entity) or device’s email application (not supported for Salesforce).
- HTML Emails: Show emails as HTML or plain text. (Applies to CRM emails where HTML wasn’t stripped off. Google, Exchange, and Salesforce emails are always shown as HTML.)
- Create 'Phone Call' record: Show the new Phone Call form after a call that was started from the app (call button was pressed).
- Calendar Week Rule: The rule for calculating Week Number (0-Auto, 1-FirstDay, 2-FirstFullWeek, 3-FirstThursday) (ISO8601).
- Mark Email Read After: Number of seconds to wait before an email is marked as read (-1 for never).
- Email Signature: Email signature added at the end of new email.
Integrations
Resco Mobile CRM can integrate with many third-party services, for example mail servers or document storage servers.
- Enable Google: Show/hide the ‘Google Connect’ button in the app’s Setup section.
- Google Drive Root Folder : Root folder for files related to CRM records. Must begin with ‘/’.
- Google API Key: (Windows only) Google Maps API key used by the map. Generate it via Google API Console.
Exchange
- Enable Exchange: Show/hide the ‘Exchange Connect’ button in the app’s Setup section.
- Exchange Server URL: Exchange Server URL. Leave blank for Exchange Online.
- Enable SharePoint: Show/hide the ‘SharePoint Connect’ button in the app’s Setup section.
- Partial SharePoint REST API (legacy): Used with legacy SharePoint interface (no OAuth2). If set, app uses REST API where possible. Recommended for large number of SharePoint lists.
- SharePoint REST API (OAuth2): (Dynamics 365 + SharePoint Online only, using OAuth2) Full REST API implementation for SharePoint Online. Shares OAuth2 authorization with Dynamics.
Dropbox
- Enable Dropbox: Show/hide the ‘Dropbox Connect’ button in the app’s Setup section.
- Dropbox Root Folder: Root folder for files related to CRM records. Must begin with ‘/’.
Box
- Enable Box: Show/hide the ‘Box Connect’ button in the app’s Setup section.
- Box Root Folder: Root folder for files related to CRM records. Must begin with ‘/’.
OneDrive
- Enable OneDrive: Show/hide the ‘OneDrive Connect’ button in the app’s Setup section.
- OneDrive Root Folder: Root folder for files related to CRM records. Must begin with ‘/’. OneDrive for Business: For other than user’s default drive, enter drive’s ID as prefix separated by a colon, e.g. ‘SharedDriveId:/MyFolder/’
Universign
- Use Universign sandbox: Use a sandbox environment when connecting to Universign services.
DocuSign
- Enable DocuSign: Show/hide the ‘DocuSign Connect’ button in the app’s Setup section.
- Use DocuSign sandbox: Use a sandbox environment when connecting to DocuSign services.
- Docusign Integrator Key: DocuSign Integrator (API) Key, created in DocuSign Admin console.
- Docusign Secret Key: DocuSign Secret Key, generated under Integrator Key settings.
- Use offline signing: Android only: Prefer offline signing mode for DocuSign service.
- Submit signature immediately in offline: Android only: Try to submit signature immediately even in offline DocuSign signing mode. Turn off to perform submission during synchronization.
CamCard
- CamCard ApiKey: The API key for using the business card scanner application (CamCard app integration). Obtain it via CamCard.com
- CamCard Save Image: Save the image of the business card as an attachment. Not supported on Android 12 and later.
Maps
- Bing Maps API Key: (Windows 10) Bing Maps API key used by the map list. Generate it on Bing Maps portal.
- Mapbox Access Token: Access token for Mapbox maps. Needed for Mapbox integration offering offline maps, custom layers, and custom maps.
Agora
- Agora Key: License key for Agora video call service, available in Resco mobile apps as Houston video calls.
Stripe
- Stripe API key: Stripe online payment API key. Identifies Stripe payment account.
- Stripe Payment Gateway URL: Locates the Stripe payment gateway microservice.
Offline Data Sync
Configure the synchronization between the databases of your CRM server and your Mobile CRM apps.
Background Sync
The following options apply to background or automatic synchronization.
- Auto Sync interval: Sync automatically every X seconds (0 – disabled) regardless of local changes. 'Require Sync Login' must be disabled.
- Trigger Auto Sync: Choose events that trigger auto sync (Never, on app start, on change (=when a record is saved or deleted), or on start and change). 'Require Sync Login' must be disabled.
- Delay triggered sync after change: Delays sync 10X seconds after change (0 – immediately).
- Delay triggered sync after change (in Online mode): Overrides sync delay time (10X seconds) in Online mode (0 - don't override).
- Background Download: Always download records in background. If True, foreground sync switches to background after executing upload & customization update. No impact on background sync.
- Background File Sync: Always download attachments in background. If True, foreground sync does not wait for attachment download completion. No impact on background sync.
Sync Data
- Sync Email as Text: Strips all HTML formatting from CRM emails during sync. This setting has no effect on Gmail or Exchange mails. The primary motivation for enabling this setting is database space optimization.
- Max Sync Records: Maximum number of records per entity to download. This is a hard limit that violates data integrity. (More restrictive sync filter is a better way to reduce app data.) We recommend setting this parameter to a value that exceeds the maximum count of records in your largest entity.
- If a certain entity exceeds this threshold, it may also impact other entities:
- This setting also applies to intersect (NN) entities, however, the limit is multiplied by 5. If some NN records are missing on the client, the consequence is that some records that are related on the server will be unrelated on the client.
- Attachments related to non-downloaded records will be deleted in the sync cleanup phase.
- Child records of non-downloaded records will be deleted in the sync cleanup phase.
- If the entity B uses Sync Filter with an inner link to an entity with too many records, some entity B records can be deleted in the sync cleanup phase.
Warning | If you're increasing the count for Max Sync Records after seeing warnings for incomplete entities in the log, you (and the mobile app users) will need to perform a full sync with delete data after the changes in project are published, since the standard (incremental) sync is unable to download records which were previously limited by this count. |
- Max Attachment Size: Max size of an attachment (documents, notes, email attachments) in bytes to be downloaded during sync. Larger attachments can be downloaded on user request.
- Download Multiple Attachments: Download multiple attachments in one batch request (except attachments over 100K). Default: false. Not implemented for Salesforce.
- Sync Shared Records: (Dynamics only) Sync shared records. Shared records are always downloaded during a full sync. Incremental sync updates shared records only when this setting is ON. (On Salesforce, syncing of shared records can be enabled per entity.)
- Sync Shared for Access Teams: (Dynamics only) Extends shared records sync by checking also dynamic access teams.
- Sync Azure Attachments: (Dynamics only) Use a special method to download note attachments stored in Azure blob storage. (Requires Azure blob store plugin from Jenkins.)
- Field Level Permissions: (Dynamics only) If True, field-level permissions set in Dynamics CRM are respected also in the mobile app.
Sync Errors
- User can Ignore Sync Errors: Sync Errors form: Allow the user to resolve sync error with Ignore. If a user decides to ignore a particular sync error, the record is marked as unchanged; user changes won’t be sent to the server during the next sync.
- Show Sync Warnings: Show sync warnings alert after sync completion or just silently write them to the sync log. (In case of multiple warnings only the first one is shown.)
- Diagnostic Sync Logs: Produce extended diagnostic output from sync.
- Log Conflict Details: Sync log should list client data changes (modified properties & their new values) along with logged conflict. For entities with conflict handling set to User Action.
- Remote Conflict Resolution: Sync should check for remote conflict resolution (done in Woodford’s Sync Dashboard).
- Send Error Logs via Resco: If True, error logs will be sent via Resco web service instead of the native email client. Use when the native client truncates email messages or when the native client is not configured on the user device.
Sync Advanced (contact support before use!)
- Use TDS download method: (Dataverse Only) Utilize faster Tabular Data Stream based downloads whenever available. See TDS.
- Chronological Upload Order: Sync uploads entity records in the order in which they were edited (created/modified) the first time. (The default order is by last modification date.) Defines upload order of the records within the same entity; not the order of entities.
- # Records / UploadRequest: Max number of upload requests sent in one batch to the server. (Displayed as "MaxExecMultiple" in the sync log.)
- Disable Sync Analyzer: Analyzer is an optional module that detects tables for which it is faster to download full content instead of executing incremental sync. (May improve sync times if the server has many changes.)
- Use Linked Sync Filter: Use linked sync filter in incremental sync. Defines the ‘Project Default’ option for entity ‘Incremental Linked SyncFilter’ setting.
- Download page size - Default: Max number of records to download in one batch. 0=Use the default of the MobileCRM application. Allowed non-zero values: 100-5000. Not applicable to Salesforce.
- Download page size - Emails: Max number of emails to download in one batch (20-500). Emails have a separate limit because they can carry large data.
- No Lock During Sync: (Dynamics only) Server should take no lock during read. Prevents server deadlocks but can read uncommitted dirty data. In other words, there is a risk that the client downloads unconfirmed server records which might be rolled back in (short) future. The setting might help to avoid server database timeouts.
- Send empty Picklist as Null: (Dynamics only) Send empty picklist value as Null. (Default is ‘False’, i.e. empty value is sent as -1.)
- HTTP stack: Determines whether to use the native HTTP stack or Microsoft .Net stack. Native stack is usually faster. Choose .Net stack if you experience authentication or other connection issues.
Sync, Legacy settings (Do not change without a reason!)
- Multi Thread Sync: Use multiple download threads for faster sync.
- Full Sync on Schema Change: Force full sync when a new customization changes entities/fields. (Default: database schema is updated, and incremental sync executed.)
- RowVersion Change Tracking: (Dynamics only) Uses a more precise method for tracking server changes. (Alternative is modifiedon date.)
- Legacy Marketing Sync: (Dynamics only) Use legacy marketing list member sync algorithm.
Technical details
Configuration of your app project is saved in the backend server:
- On Dynamics, it is represented by the entity resco_mobiledata.
- On Resco Cloud, it is represented by the entity mobilesettings.
During synchronization, the settings are downloaded to the mobile app.