Skip straight to the main guide
WrenchQuarry
More

Field service integration checks: 6 limits to verify

WrenchQuarry Editorial Team · Published · 12 min read

Check prerequisites and limits for each component your setup uses, starting with the Dataverse store and Dynamics apps setting for a Field Service environment.

Key takeaways

  • Verify the environment has an attached Dataverse store and the Enable Dynamics 365 apps setting turned on, as Field Service is not supported on a bare Common Data Service instance.
  • Configure the mobile offline profile to select specific tables, filters, relationships, and sync intervals, then review sync status and errors.
  • Note that Compute Routes requests are billed for each query, while Compute Route Matrix requests are billed for each element, calculated by multiplying origins by destinations.
  • Flag routing requests containing more than 10 waypoints, which are billed at a higher rate, and note the rate limit of 3,000 queries each minute.
  • Inspect automation flows for more than 65 conditions, branches, and actions, and remember that Lookup work items actions use only the first 100 results.

Field service integration checklist: checks before enabling connections

The six checks cover environment prerequisites, mobile synchronization, routing requests, automation scope, webhook delivery, and messaging endpoints. You apply only the checks for the connected components your setup actually uses. A bare Common Data Service (CDS) instance does not support Field Service, so you must exclude it from your environment review Microsoft Learn. The table below lists the documented requirement or limit for each publisher's component. Use it to verify your setup against the specific constraints before enabling any connection.

PublisherDocumented ComponentKey Requirement or LimitSource URL
Microsoft LearnField Service EnvironmentAttached Dataverse store and Dynamics 365 apps setting enabledMicrosoft Learn
Google Maps PlatformRoutes API3,000 queries each minute rate limitGoogle Maps Platform
Atlassian SupportCloud AutomationLookup work items use only first 100 resultsAtlassian Support
Stripe DocumentationWebhooksTLS v1.2 or higher requiredStripe Documentation
AWS DocumentationSimple Notification ServiceDefault message size 262,144 bytesAWS Documentation
Microsoft LearnMobile Sync ProfileTables, filters, relationships, sync intervals, and error statusMicrosoft Learn

Review each row against your current infrastructure. If you do not use a specific component, skip that row. The remaining sections detail how to inspect each check in your own environment.

Before testing: check the environment and mobile sync profile

Start by verifying the environment prerequisites for the Dynamics 365 Field Service mobile app. You must confirm that the attached Dataverse store and Dynamics apps setting are correctly configured for your Field Service environment. A bare CDS instance is excluded from this specific setup requirement. Ensure the environment meets the documented system requirements before proceeding to synchronization tests.

Next, configure the mobile offline profile. According to Microsoft Learn, you set up the mobile offline profile to choose tables, filters, relationships, and sync intervals. This configuration determines which data is available to technicians when they are offline. Select the specific tables your field teams need, apply filters to limit data volume, and define the relationships between records. Set the sync intervals to match your operational needs, ensuring that data updates occur at appropriate times without overloading the network.

After configuring the offline profile, review the synchronization status. According to Microsoft Learn, you configure offline data synchronization and learn how to review sync status and errors. Check the sync status regularly to identify any failures or delays. Review error messages to understand why synchronization might have failed. Resolve these errors before enabling the integration in production.

Inspect the mobile profile settings to ensure they align with your business processes. Confirm that filters exclude unnecessary data to improve performance. Check that relationships are correctly mapped so that related records sync together. Adjust sync intervals if you find that data is not updating frequently enough or if sync operations are causing performance issues.

See Work order statuses: 6 words to check at dispatch when you review work orders alongside these checks.

During testing: inspect routing, automation and message limits

Review the billing units for your routing component before enabling it. Compute Routes requests are billed for each query, while Compute Route Matrix requests are billed for each element, calculated by multiplying the number of origins by the number of destinations, according to Google Maps Platform. If your dispatch logic sends requests containing more than 10 waypoints, note that these are billed at a higher rate, according to Google Maps Platform. Check the rate limit of 3,000 QPM queries each minute for your setup, according to Google Maps Platform. You can manage costs by setting daily quota limits for the Routes API in the Google Cloud Console to prevent exceeding your budget and ensure continued access, according to Google Maps Platform.

Inspect the size of your automation flows during this phase. A single flow contains more than 65 conditions, branches, and actions, according to Atlassian Support. When entering a JQL query for the Lookup work items action, only the first 100 work items will be used, according to Atlassian Support. Verify that your query logic accounts for this result limit.

Routing and automation checks

  • Identify whether your system uses query billing or element billing.
  • Flag any test requests that exceed 10 waypoints.
  • Confirm the 3,000 QPM limit against your peak dispatch volume.
  • Set daily quota limits in the Google Cloud Console.
  • Count the conditions, branches, and actions in each automation flow.
  • Verify that Lookup work items queries do not rely on results beyond the first 100.

See Dispatch board statuses: 3 platforms explained when you line up routing checks with the board. Ensure your routing logic matches the actual number of origins and destinations in your service area. If your automation triggers depend on work item status, confirm the JQL query returns the expected subset within the 100-item limit. Set the daily quota to a level that supports your operational needs without risking service interruption. Keep the waypoint count under 10 where possible to avoid higher billing rates. Monitor the query rate during peak hours to stay within the 3,000 QPM threshold. These checks ensure your routing and automation components function within documented constraints before full enablement.

After a payment-event test: check the response before accounting updates

Verify the transport security and accessibility of your webhook destination before enabling automated accounting updates. Stripe requires TLS version v1.2 or higher, so perform an SSL server test to find issues that might cause this error, according to Stripe Documentation. A delivery problem might occur when the server detects an error (400), when the destination URL has access restrictions (401, 403, 405), or when the destination URL doesn’t exist (404), according to Stripe Documentation. Confirm that your endpoint is publicly accessible to the internet and accepts a POST HTTP method, according to Stripe Documentation.

Ensure your endpoint returns a successful status code quickly. The endpoint must quickly return a successful status code (2xx) before any complex logic that might cause a timeout, according to Stripe Documentation. This timing rule is critical for preserving the correct order of operations during payment events. For example, you must return a 200 response before updating a customer’s invoice as paid in your accounting system, according to Stripe Documentation.

Do not assume that a successful webhook response alone proves that an invoice was paid. Your setup must handle the logic of updating the invoice as paid separately from the act of returning the 200 status code. If your endpoint performs complex logic before returning the status code, it risks a timeout. If your endpoint is not publicly accessible or does not accept POST requests, the connection will fail with specific error codes.

Review your SSL configuration to ensure it meets the TLS version v1.2 or higher requirement. Run an SSL server test to identify potential issues that might cause errors in the webhook delivery process. Verify that your destination URL is reachable from the internet and that it accepts the POST HTTP method. Check for access restrictions that might trigger 401, 403, or 405 errors. Confirm that the destination URL exists to avoid 404 errors.

Messaging endpoint checks: programmatic access and size limits

Before enabling a messaging integration, verify the programmatic endpoint your setup uses to connect to the service. To connect programmatically to an AWS service, you use an endpoint, according to AWS Documentation. Identify the specific endpoint address configured in your software before running any test traffic.

Next, inspect the size limits for the messages and headers passing through that endpoint. The default maximum message size is 262,144 bytes (256 KiB), according to AWS Documentation. Confirm your payload structure stays within this boundary.

Also check the header size for any fields attached to the message. The maximum header size is 16,384 bytes (16 KiB), according to AWS Documentation.

Finally, account for regional differences in quota settings. The following quotas vary by AWS Region, according to AWS Documentation. Verify the specific quota values for the region where your endpoint is hosted.

Record the observed endpoint address, message size, header size, and regional quota in your checklist. Compare these observed values against the documented limits to confirm your setup stays within bounds before enabling the connection.

Connection acceptance checklist

Review what you verified before enabling each connection. Check the fields for the components your setup actually uses; skip tools you do not run.

Keep the result you saw factual. Write the exact status code or error message you saw during the test, not an interpretation of what it should have been. If a limit was not tested because you do not use that component, skip that limit rather than guessing. This keeps the record honest about which checks you actually performed. Review the finished checks before enabling the connection in production. If any prerequisite is missing or the test shows an error, do not enable the connection until you resolve that specific item. This checklist is for your records; it does not replace the vendor documentation for your specific software version.

Illustrative example of 6 checks on one morning

A desk runs 6 checks before it enables a connection. The route request has 10 waypoints, so the desk flags the higher rate. A matrix uses 4 origins and 3 destinations, which makes 12 elements because origins are multiplied by destinations. Peak volume stays under 3,000 queries each minute. One flow holds 40 conditions, branches, and actions, short of a single flow that contains more than 65. A lookup uses only the first 100 work items. The endpoint returns 200 before the invoice is marked paid. The desk skips any check for a component it does not use.

Try the checks on today's jobs

Today, write down the components your setup actually uses and compare each one with the matching limit above. Skip any component you do not run. Then read Field Service Work Order Checklist for Dispatch Handoffs before you enable the connection.

FAQ: applying these checks to your software setup

What belongs on a field service integration checklist?

A field service integration checklist includes six specific checks: environment prerequisites, mobile synchronization, routing requests, automation scope, webhook delivery, and messaging endpoints. You should verify the attached Dataverse store and Dynamics apps setting for the environment, as noted by Microsoft Learn. The routing checks involve identifying billing units for each query or element, while automation checks inspect flow size limits according to Atlassian Support. Webhook delivery requires checking TLS versions and response timing, and messaging endpoints require verifying programmatic access and size limits.

Does every check apply if my setup does not use all these tools?

No, you should apply only the checks for components your setup actually uses. For example, if your software does not use the Routes API, you do not need to inspect the 3,000 queries each minute rate limit documented by Google Maps Platform. Similarly, if you do not use Cloud automation, the limit of 65 conditions, branches, and actions in a single flow from Atlassian Support is not relevant to your environment. Focus your testing on the connected components that are active in your specific field-service software configuration.

How are route matrix elements calculated?

Route matrix elements are calculated by multiplying the number of origins by the number of destinations. Google Maps Platform documents that Compute Route Matrix requests are billed for each element using this specific calculation method. This differs from Compute Routes requests, which are billed for each query. Understanding this distinction helps you estimate costs and manage the daily quota limits configured through the Google Cloud Console.

What happens to Lookup work items results beyond the first hundred?

Only the first 100 work items are used when entering a JQL query for the Lookup work items action. Atlassian Support specifies this limit for automation flows. If your workflow requires processing more than 100 items, you must account for this constraint in your automation design. This limit applies to the specific action within the automation service.

When should a Stripe webhook return its successful response?

A Stripe webhook must return a 200 response before updating a customer’s invoice as paid in your accounting system. Stripe Documentation states that you should quickly return a successful status code before any complex logic that might cause a timeout. This ordering ensures that the payment event is acknowledged promptly. Return a successful status code before complex logic, such as marking the invoice paid, that might cause a timeout.

Sources

More field guides