Jump to content

Configuration: Difference between revisions

From Resco's Wiki
 
(114 intermediate revisions by 2 users not shown)
Line 3: Line 3:


The list of parameters is divided into several groups. You can expand and collapse each group by clicking its header row.
The list of parameters is divided into several groups. You can expand and collapse each group by clicking its header row.
* [[#User Experience|User Experience]]
* [[#Data|Data]]
* [[#Synchronization|Synchronization]]
* [[#Security|Security]]
* [[#Online Mode|Online Mode]]
* [[#PIM/Email|PIM/Email]]
* [[#Accounts|Accounts]]


Each row represents a configuration parameter.
Each row represents a configuration parameter.
Line 16: Line 9:
* 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 [[Resco_Mobile_CRM#Setup|Setup section]] of the mobile app.
* 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 [[Resco_Mobile_CRM#Setup|Setup section]] of the mobile app.


You can also configure [[Sync Config]] and [[Blob Filter]] from this screen.
From the configuration screen, you can also access advanced configuration settings:
* [[Sync Config]]
* [[Merge Config]]
* [[Blob Filter]]
* [[Global constants]]


== User Experience ==
== UI ==


User Experience group houses the settings for customizing the user interface.
=== Forms ===
Configure default settings that apply to all [[form]]s in your app project. Form-specific properties can override values configured on the project level.


First subgroup contains settings for forms. User is able to set whether the forms are shown in full-screen mode, if a new flexible form UI is used or there’s an option to set the form’s list item scrolling to vertical or horizontal option.
* '''Full-Screen Forms''': Show forms in full-screen mode.
* '''Full-screen Forms''': Whether to show forms (on tablets) in full screen mode.
* '''Allow Form Resize''': Toggle between full-screen and compact (default) mode.  
* '''Allow Form Resize''': Whether to allow the user to toggle form's full-screen mode.
* '''Flexible Forms''': Use [[Flexible form|Flexible Forms]] UI. If disabled, tabs are automatically added to the form.
* '''Flexible Forms''': Whether to use new forms UI.
* '''List Scrolling in Flexible Forms''': Use vertical or horizontal (default) scrolling list in Flexible Forms.<br><small>(In [[Form#Properties_pane|Form properties]], this corresponds to the property "Arrange items". Horizontal scrolling disables view headers.)</small>
* '''Auto Form Grid''': The width in pixels after which a form will be switched to simple grid mode.
* '''Auto Form Grid''': The minimum width in pixels after which a form switches to the [[Form#Displaying_multiple_fields_per_row|automatic grid mode]].
* '''Flexible Forms use Vertical List''': Whether to use vertically scrolling list in new forms UI or horizontally (default).
* '''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 [https://blog.resco.net/2016/10/12/how-to-set-up-save-button-actions-in-resco-mobile-crm/ How to set it up]. {{Badge|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#Caching_forms|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 [[Resco_Field_Service_2.0_for_Dynamics_365_Field_Service#Combined_entity_form|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).


Second subgroup gives user option to hide the list header, enable List Buttons or an option to allow Advanced Find. Also, user can enable an Incremental List Search or set the width threshold for switching to simple grid mode.
=== List ===
* '''Auto List Grid''': The width in pixels after which a list will be switched to simple grid mode.
Configure default settings that apply to all [[view]]s (lists) in your app project. View-specific properties can override values configured on the project level.
* '''Auto List Header''': Whether to automatically show list header.
* '''Enable List Buttons''': Whether to show list row buttons.
* '''User's language Reports only''': Whether to show reports for user's language. Otherwise reports for all languages can be selected.
* '''Allow Advanced Find''': Whether the user can use Advanced Find and create custom personal views.
* '''Incremental List Search''': Whether to filter lists after every key stroke or whether to wait for the 'Enter' key.


Legacy settings are placed into the third subgroup.
* '''Auto List Grid''': The minimum width in pixels, after which a list switches to the automatic grid mode.
* '''Use Legacy iOS WebView''': iOS: Whether to host iFrames in legacy UIWebView instead of default WKWebView.
* '''Auto List Header''': Show the automatic list header (displaying cell names and allowing for sorting).
* '''Use Chromium browser on Win7''': Win7 Desktop: Whether to use Chromium Embedded Framework browser instead of IE.
* '''Use Legacy Buttons''': Whether to use in-line buttons or legacy view buttons (iOS, Android).
* '''Use Legacy Charts''': Whether to use HTML charts or legacy charts.


Next subgroup contains settings for modifying the save behavior.
: In [[View#Properties_pane|view properties]], this corresponds to the setting "Show Header".
* '''Save Button Action''': The form's save button action. The default is SaveOnly for new entity, SaveAndClose otherwise.
: If you are using the list on a form, make sure to enable vertical scrolling (in the form property "Arrange items"). Horizontal scrolling disables headers.
* '''Reload After Save''': Whether to reload the form (re-read data) after Save.


The last subgroup of User Experience contains various options from the full-screen setting to GPS position accuracy.
* '''Allow Advanced Find''': Use Advanced Find and create custom personal lists. See [[Private view]] for details.
* '''Desktop FullScreen''': Windows Desktop: Whether the App should run in FullScreen (true) or standard Window mode (false).
* '''Incremental List Search''': Filter lists after every keystroke or wait for the ‘Enter’ key.
* '''Desktop ScrollBar Width''': Windows Desktop: The width in pixels of the form scrollbars.
* '''Allow Multi-select In Lists''': Allows users to [[View#Actions_when_multiple_records_are_selected|select multiple records in views]] and calculate aggregates or execute custom commands.
* '''Ask User Before Exit''': Windows Desktop: Whether the user confirmation is required to exit the App.
* '''Associated List Editable''': If True, the associated list is editable, i.e., users can create new records (only if the parent form is editable).  
* '''Show Related Activities''': Whether to show Activities from related records. (Initial setting, user choice will be remembered.)
* '''Use Legacy List Buttons''': (iOS, Android) Use in-line buttons or legacy [[View#Buttons|view buttons]].
* '''Show Dashboard''': Whether to show dashboard(s).
* '''List Buttons Select Row''': (iOS, Android) Clicking the [[View#Buttons|inline buttons in a view]] automatically selects the row they belong to.
* '''Show Map''': Whether to show map(s).
:* For backward compatibility, the default behavior is "false" (rows are not selected automatically).
* '''Map Pin Aggregation''': Whether to allow the pin aggregation on the map.
:* When "true", the clicked row is selected. This behavior is consistent with Windows versions of the app.
* '''Map Pin Expansion''': Whether to allow the pin expansion on the map.
 
=== 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 “Entity” button in the [[Setup#Deprecated_settings|app’s setup/settings]]. 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 [https://www.resco.net/news/whats-new-rescos-spring-release-2018/ feature introduction]. {{Badge|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 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.
* '''GPS Position Age''': The default maximum age (in seconds) of the last result when resolving the current position.
* '''Combined Booking Form''': Whether to show the Work Order form on the Bookable Resouce Booking form
* '''Use Legacy PDF Viewer''': Android Only. Whether to use the legacy PdfJS viewer or the native pdf viewer
* '''Barcode Length''': The required length of all scanned barcodes. 0 - any length is acceptable
* '''Assoc List Editable''': Whether the associated list is editable (can create new records) only if the parent form is editable.
* '''Disable prompt for Record Type: Salesforce''': Whether application should disable automatic prompt for record type when user created new record.
* '''Disable multi-layout support: Salesforce''': Whether application should disable automatic showing/hiding of form sections based on Salesforce layout configuration.
* '''Prefer Salesforce Files over Attachments: Salesforce''': Application will use Files as default entity for generated content such as Mobile Reports.


== Data ==
<small>
Data group provides all options for handling the data, attachments, photos and databases.
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 [[Command_editor#Form_commands|UpdateGPS and UpdateAddress]] form commands (if you select to use the current location).
* The [[Command_editor#Check_in_.2F_check_out|Check-In]] form command.
* When using the function SetGpsPosition in [[Rules editor|rules]].
</small>
 
=== Legacy ===
 
* '''Use Legacy Charts''': Use HTML [[chart]]s or legacy charts.
* '''Use Legacy PDF Viewer''': (Android only) Use the legacy PdfJS viewer or the native PDF viewer.
<!-- * '''Use Legacy iOS WebView''': (iOS) Compatibility switch: Select engine hosting in-app iFrames. WKWebView (default) is newer, faster, more secure. Use legacy WebView if your scripts rely on older features unsupported by WKWebView. -->
* '''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 [[barcode]]s (0 – any length is acceptable).
* <s>'''Web UI (experimental)''': Turn on the experimental web-based UI.</s> <small>We are deprecating this option in [[Releases/Winter_2026|release 19.0]].</small>
* '''Form behavior during background sync''': You can restrict user actions on a form while a background sync is in progress.
:: NoAction = No limitations. This is the default behavior.
:: BlockSave = Form cannot be saved while the sync is running.
:: BlockSaveAndSync = Form cannot be saved while the sync is running. Also, don't start sync while a form is opened.
 
=== 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 [[Resco_JavaScript_Bridge#Web_browser_component|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) [https://en.wikipedia.org/wiki/Chromium_Embedded_Framework Chromium Embedded Framework]. {{Badge|Wiki}}


First subgroup enables the user to allow or prohibit the mobile users to hide entities or show/hide the “Delete Data” button.
== Salesforce ==
* '''Client Customize''': Allow the mobile user to hide entities in the App Setup section. This setting does not use the Lock checkbox. If you leave the Value checkbox ticked, users will be able to use the Data part of the Setup and enable/disable entities. If you clear the Value checkbox, users will not see the Data part anymore and will not be able to enable/disable entities.
* '''Hide Locked Settings''': Whether locked config options in SetupForm should be disabled or hidden.
* '''Allow User to Delete Data''': Show/Hide the 'Delete Data' button in the App Setup section.


User can set the maximum size of the attachments to be created, captured photos, quality of captured videos or allow/prohibit photo cropping in the second subgroup.
* '''Disable prompt for Record Type''': Disable automatic prompt for record type when user creates a new record.
* '''Max Upload Attachment Size''': The maximum size of attachment (notes, email attachment) in bytes that can be created in the App.
* '''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.
* '''Capture Photo Size''': The default photo size for photos taken in the App.
* '''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 ([[Releases/Autumn_2022#Syncing_layouts_with_Salesforce|feature introduction]] / [[Salesforce_FAQ#permissions|FAQ entry]]).
* '''Max Export Records''': The maximum number of records to export (in the 'Export' command). -1 - no limit.
* '''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.
* '''Audio/Video recording quality''': The recording quality for audio or video taken in the App. (Affects file size!)
* '''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".
* '''Allow Photo Cropping''': Whether to show the photo cropping step after a photo is taken.
* '''Force legacy batch upload API''': Use the less efficient [https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/resources_composite_batch.htm Batch API] for uploading records during synchronization (instead of the default [https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/resources_composite_sobjects_collections.htm Collections API]). Consider the legacy API only if you experience issues with APEX triggers or when recommended by Resco support.
* '''Save Signature As PNG''': Whether to store signature as vector SVG image or PNG.


Third subgroup provides a possibility to allow/turn off the encryption or use Sql Like Optimization.
== Dynamics ==
* '''Use Database Encryption''': Whether to encrypt the device database that stores the offline CRM data. This setting does not use the Lock checkbox, as this setting is not available on the Mobile CRM Setup. Local database is encrypted by default on the mobile devices. It can be disabled though.
* '''Use Sql Like Optimization''': Using this (SQLite) optimization can increase the BeginsWith operator performance for large data sets. (E.g., speeds up incremental search.)


Last group houses settings for using of the Entity and Attribute map and [[Duplicate detection]]
* '''Duplicate Detection''': Use [[duplicate detection]] rule (configured in CRM) when a new record is saved to identify possible duplicate.
* '''Use Entity & Attribute Map''': Whether to use the Entity and Attribute Mappings (configured in CRM) when creating a new record. If you have an automatic field mapping set up on the CRM server, this parameter will enable the same functionality in the Mobile CRM application.
* '''CRM Login for Exchange''': Automatically use user’s CRM login for [[Exchange]] login.
* '''Duplicate Detection''': Whether to use [[duplicate detection]] when creating a new record.
* '''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.
* '''Auto Save Product Detail''': Whether to edit the sales product detail entity directly or to apply changes on save.
* '''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.
* '''Ignore Missing Process Flow''': Whether to show an error if the Business Process Flow is not found.


== Synchronization ==
== Data ==
=== Attachments, Media ===


This group contains the options for setting up the synchronization.
* '''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 [[Releases/Autumn_2021|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: [[Image_examples#GPS_information_in_image_metadata|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.


First subgroup enables user to set maximum number of records per entity to download, maximum size of downloaded attachment or email text sync.
=== Delete Behavior ===
* '''Sync Shared Records''': Whether to sync shared records.
* '''Sync Email as Text''': Strips HTML from CRM emails during synchronization. Database space optimization.
* '''Max Sync Records''': The maximum number of records per entity to download. This is a hard limit. Designing more restrictive sync filters is a better way to reduce the App data.
* '''Max Attachment Size''': The maximum size of attachment (notes, email attachments) in bytes to be downloaded during sync.
* '''Background Download''': Always download records in background.


This subgroup has the settings for lock during the sync or RowVersion change tracking. In case of needing to make changes, it’s advised to contact support (changing these options usually helps in troubleshooting specific issues).
* '''Allow User to Delete Data''': Show/Hide the ‘Delete Data’ button in the app Setup section.
* '''No Lock During Sync''': (Contact support before use!) Whether the server should take no lock during read. Prevents deadlocks, but can cause read of uncommitted dirty data.
* '''Cascading Delete''': If set to ‘True’, deleting a record also deletes its child records and attachments.
* '''Send empty Picklist as Null''': (Contact support before use!) Whether to send empty picklist value as Null (default is false, empty is sent as -1).
* '''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.)
* '''RowVersion Change Tracking''': (Contact support before use!) Uses a more precise method for tracking server changes.


Similarly to the previous subgroup, setting in this group should be changed only after contacting support (same as above).
=== Other settings ===
* '''Use Linked Sync Filter''': (Contact support before use!) Whether to use linked sync filter in incremental sync.
* '''Multi Thread Sync''': (Contact support before use!) Use multiple threads for faster sync. This setting does not use the Lock checkbox, as this setting is not available in the Mobile CRM Setup. This option is enabled by default, but if users experience synchronization problems, it can be turned off.
* '''# Records / UploadRequest''': (Contact support before use!) The maximum number of upload requests sent to Server in one batch.
* '''Disable Sync Analyzer''': (Contact support before use!) Analyzer detects tables for which the download of the full table content is more efficient than the incremental sync.
* '''Full Sync on Schema Change''': (Contact support before use!) Whether to force full sync on schema change. (I.e. when a new customization changes entities/fields.)
* '''Diagnostic Sync Logs''': Whether to produce diagnostic output from synchronization.
* '''Log Conflict Details''': Whether the sync log should list client data changes along with logged conflict. For entities with conflict handling set to User Action.
* '''Send Error Logs via Resco''': Forces error logs to be sent via Resco web service instead of native email client
* '''# Emails / Download batch''': (Contact support before use!) The maximum number of emails to download in one batch.


The last subgroup deals with auto sync settings. Please check our [http://blog.resco.net/2014/08/13/automatic-synchronization/ blog]. {{Badge|Blog}}
* '''Ignore Missing Process Flow''': If false, error is shown if the Business Process Flow is not found.
* '''Auto Sync''': Setup automatic synchronization. (Never, On App start, After entity form save action)
* '''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.
* '''Auto Sync Delay''': Synchronizes every X seconds even if no local changes were made. 0 - disabled
* '''Use Entity & Attribute Map''': Use the Entity and Attribute Mappings (configured in CRM) when creating a new record.
* '''Auto Sync in Online''': Synchronizes after X seconds after a change is made in Online Mode. 0 - disabled
* '''Use Sql Like Optimization''': Using this (SQLite) optimization can increase the BeginsWith operator performance for large data sets. (E.g. speed up incremental search.)
* '''Background File Sync''': Always download attachments in background. Sync does not wait for attachment download completion.
* '''Max Export Records''': The maximum number of records to export (in the ‘Export’ command), (-1 – no limit).
* '''Sync Azure Attachments''': Whether to use special method to download note attachments stored in azure blob storage.
* '''Hide Locked Settings''': Locked options in the Configuration section in Mobile Project are hidden in app’s Setup form.
* '''Cascading Delete''': Deleting a record implies deleting also its children and attachments.
* '''Auto Save Product Detail''':  
* '''Cascading Cleanup''': When deleting a record all lookups pointing to that record are set to null.
** 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.
* '''Upload Order''': Whether sync uploads entity records in the order in which they were created / deleted / changed for the 1st time. Same entity only.
** False - Changes only apply when you save the record. If you don't save, changes can be discarded.
* '''SharePoint REST API''': Whether to use new SharePoint REST API or standard web-service.
:: On Salesforce, the setting is not supported. The behavior is always 'False', i.e., you have to save manually.
* '''User can Ignore Sync Errors''': Whether to allow the user to 'resolve' sync error with ignore.
* '''Show Sync Warnings''': Whether to show sync warnings alert or just put them to the sync log.
* '''Field Level Permissions''': Whether to enabled field level permissions. Requires a full sync.
* '''Remote Conflict Resolution''': Whether the sync should check for remote control resolution (done in Woodford's [[Sync Dashboard]]).
* '''Legacy Marketing Sync''': (Contact support before use!) Whether to use legacy marketing list member sync algorithm.


== Security ==
== 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 [[automatic synchronization|background sync]].
=== Certificates ===


Security group has couple options for customization security, sync logins and password saving.
* '''Save Password''': Whether password entry is required each time the App is run.
* '''Verify Server Certificate''': Refuses server connection if the HTTPS certificate is invalid or self-signed.
* '''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].
* '''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.)
* '''Require Sync Login''': Whether password entry is required each time the App is synchronized.
 
* '''Enable Customization Security''': Enables the Offline HTML and customization files content verification.
=== Other settings ===
* '''OAuth Offline token age''': Lifetime of the OAuth offline token in seconds. 0 - unlimited. Default: 0.
 
* '''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.)
 
:<small>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.</small>


== Online Mode ==
== Online Mode ==


Online Mode group contains settings for Online and Offline modes.
* '''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.)
* '''Online Mode''': Setup when to work in Online mode.
* '''Allow User Mode Switch''': The user can toggle between online and offline mode via a button.
* '''No Lock in Online''': (Contact support before use!) Whether the server should take no lock during read. Prevents deadlocks, but can cause read of uncommitted dirty data.
* '''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''': Whether to synchronize before going into Online Mode.
* '''Sync before going Online''': Sync before going into Online Mode.
* '''Sync before going Offline''': Whether to synchronize before going into Offline Mode.
* '''Sync before going Offline''': Sync before going into Offline Mode.
* '''Allow User Mode Switch''': Whether the user can change online/offline mode via button.


== PIM/Email ==
== PIM/Email ==
This group offers user to set reminders, show/hide personal events, contacts, whether to show emails as original HTML and setting of the CamCard ApiKey.
=== Reminders, Calendars, Contacts, Emails ===
 
* '''Use Reminders''': Use the device’s notifications for configured entities. Configure in [[Events and reminders|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 [[Email integration|mail servers]] or [[Documents|document storage servers]].
 
=== Google ===
 
* <div style="color:LightGray>'''Enable Google''': Show/hide the ‘Google Connect’ button in the app’s Setup section.</div>
* <div style="color:LightGray>'''Google Drive Root Folder ''': Root folder for files related to CRM records. Must begin with ‘/’.</div>
* '''Google API Key''': (Windows only) Google Maps API key used by the map. Generate it via Google API Console.
* '''Google Map ID''': Google Map ID bound to the same Google API project as the API key. Generate it via Google API Console.
* '''Google Maps API Key for iOS''': Google Maps API key used by Google map provider on iOS. Generate it via Google API Console. It must be restricted to iOS apps, and bundle IDs must contain the target app ID (e.g. net.resco.mobilecrm)
 
=== Exchange ===


* '''Use Reminders''': Uses the device notifications for CRM configured entities. Configure in Reminders section.
* '''Enable Exchange''': Show/hide the ‘Exchange Connect’ button in the app’s Setup section.
* '''Show Personal Events''': Whether to show personal calendar events in the App Calendar.
* '''Show Personal Contacts''': Whether to show personal contacts in the App merged with CRM records.
* '''Send Meeting Invitations''': Whether to send meeting invitations when Appointment is modified.
* '''Use CRM Email''': When sending emails use CRM email or device email application.
* '''HTML Email''': Whether to show emails as original HTML or converted to text. (Applies to CRM emails for which HTML wasn't stripped off. Google/Exchange emails are shown as HTML always.)
* '''Create 'Phone Call' record''': Whether to show the new Phone Call form after a call that was started from the App.
* '''CamCard ApiKey''': The api key you got from CamCard.com for using the Business Card scanner application
* '''CamCard Save Image''': Whether to save the image of the business card as attachment
* '''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 e-mail is marked as read. -1 for never.
* '''Email Signature''': E-mail signature added at the end of new email
* '''CRM Login for Exchange''': Whether to automatically use user's CRM login for Exchange login
* '''Exchange Server URL''': Exchange Server URL. Leave blank for Exchange Online.
* '''Exchange Server URL''': Exchange Server URL. Leave blank for Exchange Online.
* '''Show Exchange Home''': Whether the exchange home item is visible.


== Accounts ==
=== [[SharePoint]] ===
The last group deals with the account setup, root folders for Dropbox or OneDrive or setting up of the Google API key(disabling or locking any of these options will hide them in MCRM app’s Setup).
 
* '''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 integration|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.
 
=== [[Command_editor#Business_card_scanning|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 ===
 
* <s>'''Bing Maps API Key'''</s>: (Deprecated) Bing Maps API key used by the map list. Generate it on Bing Maps portal.
* <s>'''Mapbox Access Token'''</s>: (Deprecated) Access token for [[Mapbox]] maps. Needed for Mapbox integration offering offline maps, custom layers, and custom maps.
 
=== Agora ===
 
* <s>'''Agora Key'''</s>: (Deprecated) License key for Agora video call service, available in Resco mobile apps as [[Houston video calls]].
 
=== Stripe ===
* '''Stripe API key''': Stripe [[Pay with Resco|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.
 
* '''Show notification when sync finished''': Show system notification when sync finished while app is in the background. Consider disabling to avoid user distraction when frequent auto-sync is configured.
 
* '''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.
: {{Note|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.|Warning}}
 
* '''Max Attachment Size''': {{Anchor|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 [[Synchronization_steps#Download_multiple_attachments_in_one_batch|multiple attachments in one batch]] request (except attachments over 100K). Default: false. Not implemented for Salesforce.
 
* '''Sync Shared Records''': (Dynamics and Salesforce) [[Shared records|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, [[Shared_records#Salesforce|syncing of shared records]] can be enabled per entity.)
 
* '''Max Sync Shared Records''': (Salesforce only) Max number of [[shared records]] per entity to download. This is a hard limit that violates data integrity. Imposed for performance reasons. Only increase if you receive Sync Warnings about shared records not downloaded.
 
* '''Sync Shared for Access Teams''': (Dynamics only) Extends shared records sync by checking also dynamic [[Shared_records#Access_teams|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]]).
* {{Anchor|logviaresco}}'''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 [[Log_files#Summary_section|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.


* Allow Google Connect: Show/Hide the 'Google Connect' button in the App Setup section.
== Technical details ==
* Google Drive Root Folder: Root Folder for CRM record's related files. Must begin with '/'
* Allow Exchange Connect: Show/Hide the 'Exchange Connect' button in the App Setup section.
* Allow SharePoint Connect: Show/Hide the 'SharePoint Connect' button in the App Setup section.
* Allow DropBox Connect: Show/Hide the 'DropBox Connect' button in the App Setup section.
* Dropbox Root Folder: Root Folder for CRM record's related files. Must begin with '/'.
* Allow OneDrive Connect: Show/Hide the 'OneDrive Connect' button in the App Setup section.
* OneDrive Root Folder: Root Folder for CRM record's related files. 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/'
* Allow Box Connect: Show/Hide the 'Box Connect' button in the App Setup section.
* Box Root Folder: Root Folder for CRM record's related files. Must begin with '/'.
* Google API Key: Windows Desktop: Google Maps API key used by the map view. Generate it on Google API Console.
* Bing Maps API Key: Windows 10: Bing Maps API key used by the map view. Generate it on Bing Maps portal.
* Mapbox Access Token: Access Token for Mapbox maps. Needed for custom maps.
* Allow Universign Connect: Show/Hide the 'Universign Connect' button in the App Setup section.
* Show/Hide the 'Universign Connect' button in the App Setup section.: Use sandbox environment when connecting to Universign services.
* Allow DocuSign Connect: Show/Hide the 'DocuSign Connect' button in the App Setup section.
* Use DocuSign sandbox: Use 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.


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_steps#Download_app_project_from_backend_server|synchronization]], the settings are downloaded to the mobile app.


[[Category:Woodford]]
[[Category:Woodford]]

Latest revision as of 08:46, 13 December 2025

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.
    (In Form properties, this corresponds to the property "Arrange items". Horizontal scrolling disables view headers.)
  • 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).

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).
In view properties, this corresponds to the setting "Show Header".
If you are using the list on a form, make sure to enable vertical scrolling (in the form property "Arrange items"). Horizontal scrolling disables headers.
  • 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 “Entity” button in the app’s setup/settings. 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. We are deprecating this option in release 19.0.
  • Form behavior during background sync: You can restrict user actions on a form while a background sync is in progress.
NoAction = No limitations. This is the default behavior.
BlockSave = Form cannot be saved while the sync is running.
BlockSaveAndSync = Form cannot be saved while the sync is running. Also, don't start sync while a form is opened.

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.

Google

  • 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.
  • Google Map ID: Google Map ID bound to the same Google API project as the API key. Generate it via Google API Console.
  • Google Maps API Key for iOS: Google Maps API key used by Google map provider on iOS. Generate it via Google API Console. It must be restricted to iOS apps, and bundle IDs must contain the target app ID (e.g. net.resco.mobilecrm)

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.

SharePoint

  • 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: (Deprecated) Bing Maps API key used by the map list. Generate it on Bing Maps portal.
  • Mapbox Access Token: (Deprecated) Access token for Mapbox maps. Needed for Mapbox integration offering offline maps, custom layers, and custom maps.

Agora

  • Agora Key: (Deprecated) 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.
  • Show notification when sync finished: Show system notification when sync finished while app is in the background. Consider disabling to avoid user distraction when frequent auto-sync is configured.
  • 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.
  • Sync Shared Records: (Dynamics and Salesforce) 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.)
  • Max Sync Shared Records: (Salesforce only) Max number of shared records per entity to download. This is a hard limit that violates data integrity. Imposed for performance reasons. Only increase if you receive Sync Warnings about shared records not downloaded.
  • 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.