Hire Microsoft Dynamics 365 experts

Hire Microsoft Dynamics 365 integration engineers

In short

MS Dynamics Guys provides integration engineers who join your team to build and run the connections between Microsoft Dynamics 365 and your other systems. They work with product APIs (application programming interfaces), service identities, duplicate-safe retries and monitoring. Where a standard connector or a direct call is not enough, they add Azure services. Before the first interface goes live, we agree in writing who receives alerts, who replays failed messages and who signs off reconciliation. Your lead sets the priorities.

When an integration engineer from MS Dynamics Guys fits your team

Some teams call this role an integration developer. The work is the same: build the connections between Microsoft Dynamics 365 and your other systems, then keep them working in production. The role suits a team that runs its own integration program, with a lead who sets priorities and an owner for each system. To compare it with other roles, use the Microsoft Dynamics 365 role chooser.

Team situations that call for this role

  • Users find failures before alerts do. A missing order or a doubled customer reaches your service desk as a complaint. Only then does someone open the interface log.
  • Connector exceptions need manual fixes. A standard connector handles the usual case. Every week, someone on your team corrects returns, partial shipments or rejected lines by hand.
  • One person knows the code. The functions, flows and mappings behind your interfaces depend on one colleague. Nobody else knows how to replay a failed message.
  • Month-end loads hit throttling. Large period-end loads get 429 Too Many Requests responses, which tell the caller to slow down. The retries then stop halfway or create duplicate records.

When a different role or a project suits you better

  • You want MS Dynamics Guys to deliver an integration and answer for its acceptance. Choose an integration project instead of a hire.
  • Most of the work is Power Automate cloud flows: their owners, connections and approvals. A Power Automate developer fits better.
  • The work is setting up an integration that Microsoft already provides, with no custom code or middleware. An example is the standard coupling between Microsoft Dynamics 365 Sales and Business Central. That is configuration work for a technical consultant.
  • Nobody has decided which system owns each record, or how your interfaces fit together. Start with a solution architect.
  • The data moves once, at go-live, with trial loads and a cutover. That is work for a data migration engineer. Interfaces that must point at the new system on cutover day still need an integration engineer.
  • The gap is code inside one product, such as a plug-in for your customer relationship management (CRM) apps or a Business Central extension. A CRM developer or a Business Central developer fits better.
  • The interface needs a new or changed data entity in Microsoft Dynamics 365 Finance or Supply Chain Management. That is development in X++, the programming language of finance and operations apps, for a finance and operations developer.
  • Nobody on your side can receive alerts or approve a replay. Name those people before an engineer starts.

Work an integration engineer can own

Your lead assigns the interfaces. For each one, the engineer delivers the items below, and your people keep the decisions in the last column.

Integration engineer work: what the engineer delivers and what your team keeps
AreaWhat the engineer deliversWhat your team keeps
Flow specificationOne page per interface: the records it moves, matching keys, direction, timing, error handling, alert recipient and reconciliation checkWhich system owns each record, and which fields each side may change
Endpoints, functions and queue handlersCode and configuration in your repository, built and tested outside production and reviewed before each releaseDesign approval, code review rules and the release decision
Dataverse identityOne application user per integration in Dataverse, the data platform under Microsoft Dynamics 365 Sales and Customer Service. Each user is tied to one Microsoft Entra app registration or managed identity, with a security role built for that interface alone.Creating the app registration and the application user, and rotating any credentials
Business Central identityA Microsoft Entra application set up on the Microsoft Entra applications page, with only the permission sets the interface needs. Business Central does not allow the SUPER permission set for applications.Granting consent and permissions, and rotating credentials
Finance and Supply Chain Management identityA Microsoft Entra application added on the Microsoft Entra applications page and mapped to a dedicated service account with only the roles the interface needsRegistering the application, creating the service account and rotating credentials
Azure identityManaged identities for the Azure resources that run the integration, so their code gets Microsoft Entra tokens without stored passwords or keysRole assignments in your Azure subscription
Duplicate-safe writesWrites keyed on an identifier that both systems share, so a message that arrives twice updates the same record instead of creating a copyAgreement on each matching key with the owner of each system
ReplayA tested way to resend failed messages once the cause is fixed. This covers dead-lettered messages: those set aside in a separate queue after repeated failures.Approval for replays that post financial records, such as invoices or payments
AlertsAlert rules for failed runs, dead-lettered messages and rising error rates, each sent to a named recipientWho receives alerts during and outside working hours
ReconciliationScheduled count and total checks between the systems, with a list of differencesSign-off on each difference, and corrections to source data
RunbookA runbook for each interface: written steps for reading its alerts, finding a failed message, replaying it and escalatingWhere the runbook lives, and who keeps it current after handover

Your team also owns the Azure subscription and pays its costs. The engineer starts with what the products already offer: standard APIs, Microsoft connectors and webhooks. Azure services come in only when volume, ordering or replay needs go beyond them, and the flow specification records the reason.

Who owns failed syncs when an integration engineer from MS Dynamics Guys joins your team?

Your team owns the decisions, and the engineer does the work. With read access to logs, telemetry and failed messages, the engineer handles alerts, diagnoses failures and replays messages inside your incident process. Your team keeps the on-call rotation, corrections to source data and approval for replays that post financial records. Alert rules, the replay procedure and the runbook stay in your repository, so these duties outlast the engagement.

We write this split down before the first interface goes live. The table shows the split that MS Dynamics Guys proposes; your signed agreement sets the final one.

Failed-sync duties during the engagement and after handover
StepMS Dynamics Guys engineerYour teamAfter handover
DetectWrites the alert rulesReceives the alertsThe rules stay in your repository
FixCorrects code or mappings, through reviewCorrects source dataThe fix history stays in your backlog
ReplayResends dead-lettered messagesApproves replays that post financial recordsA written replay procedure
ReconcileBuilds count and total checksSigns off differencesA scheduled check
AccessUses named identities with only the access each interface needsGrants, rotates and revokes accessThe engineer's access is removed at exit

Whether the engineer also joins your on-call rotation, and for which hours, is agreed per engagement. The questions at the end of this page list what to decide before go-live.

Product behavior the engineer designs around

Each product signs callers in, slows them down and reports failures in its own way. The engineer builds retries, alerts and replays around the documented behavior. Microsoft can change these limits, so they are worth checking again before each release.

Dataverse stores the data of Microsoft Dynamics 365 Sales and Customer Service. Application users get the same service protection limits as people. Above those limits, the Web API answers 429 Too Many Requests with a Retry-After header that gives the seconds to wait. An upsert finds a record by an alternate key, such as a column that holds the source system's customer number. It updates the record if it exists and creates it if not, so a resent message changes the same record. Dataverse can also post events to Azure Service Bus, where they wait in a queue until a handler reads them.

Business Central online. Integrations call API v2.0 or custom API pages written in AL, the programming language of Business Central. A caller that exceeds its rate, connection or queue limit gets 429 Too Many Requests. These limits count per user and apply to application identities in the same way, and Microsoft suggests spreading a heavy load across several identities. A request that waits in the queue for 8 minutes gets 503 Service Temporarily Unavailable with a Retry-After header. Business Central can also send telemetry to an Application Insights resource in your Azure subscription. Its web service trace records each call's endpoint, status code and any failure reason. Webhook subscriptions expire after three days unless renewed. The Business Central example below shows how the engineer keeps them working.

Power Automate cloud flows suit event-driven work at moderate volume. By default, their actions retry up to 12 times on the Medium and High performance profiles. Every write in a flow must therefore be safe to repeat. Endpoint addresses belong in environment variables, and secret values can come from Azure Key Vault. When volume, ordering or replay needs outgrow a flow, the engineer proposes a queue or a function and records why.

Microsoft Dynamics 365 Finance and Supply Chain Management. Integrations read and write data entities. Calls through the Open Data Protocol (OData) run at once and return any error to the caller. The batch data API, which covers recurring integrations and data packages, only schedules a batch job. The caller must then poll for the result and handle the errors. Microsoft's rule of thumb is to use the batch data API above a few hundred thousand records.

Azure services. A Service Bus message that still fails after the maximum number of delivery attempts, 10 by default, moves to a dead-letter queue. It stays there until someone removes it. Duplicate detection drops a resent message with a known message ID. It works only within its history window, 10 minutes by default, and not in the Basic tier. So it can back up a matching key, but not replace it. Logic Apps resend a request that fails with 408, 429 or a 500-range code, up to four times by default for most operations. The design gives each of these behaviors a matching key, an alert or a replay step.

How MS Dynamics Guys assesses an integration engineer

The exercise covers one whole interface. The candidate maps the records it moves, then plans how its failures are found, retried, replayed and reconciled. A reviewer scores the plan against the skills below.

Integration engineer assessment: skill, review method and artifact
SkillHow we review itArtifact the review produces
MappingThe candidate maps a sample payload to the target records and chooses a matching key for each record typeA mapping and key sheet
IdentityThe candidate sets up unattended access for the interface and names who grants, rotates and revokes each credentialA grant and rotation table
DuplicatesWe resend one message. The candidate shows why it updates the existing record instead of creating a copy, for example through a shared key or Service Bus duplicate detection.The write design and the test that proves it
Throttling in DataverseThe candidate explains how the client reacts to 429 Too Many Requests: it pauses for the seconds in the Retry-After header, then sends fewer requestsRetry and pacing rules for the interface
Throttling in Business CentralThe candidate tells two responses apart: 429 for the rate, connection and queue limits, and 503 when a queued request times out after 8 minutesRetry rules that back off, with fewer parallel calls
Batch jobs in Finance and Supply Chain ManagementThe candidate plans how the client polls an asynchronous import for its status and collects the errors of rejected recordsA status and error-handling plan for the job
RecoveryWe send a poison message, one that fails on every attempt. The candidate traces it to the dead-letter queue, the alert and the replay after the fix.A failure catalog entry and a replay procedure
ReconciliationThe candidate designs a count and total check for a closed period and names who signs off each differenceA reconciliation query outline with its sign-off owner

The written result also lists the gaps your interview should probe.

Buyers who compare several providers can give each candidate the interface task in our hiring scorecard.

Example first work package: make one customer sync recoverable

Example first work package in Business Central: keep webhook changes arriving

One engineer, part of a team or an owned integration

The ways to add integration capacity differ in who plans the daily work and who answers when a sync fails.

Ways to engage an integration engineer, and who answers for failed syncs
OptionWho directs the workWho answers for failed syncsMore about the model
One engineer in your teamYour lead, through your backlog and review rulesYour team, under the duties agreed in writing; the engineer works the alerts and replaysStaff augmentation

Part of your backlog may turn into one defined integration. Staff augmentation versus project delivery lists what to collect before you move it to a work package.

To buy a whole integration as a project, with MS Dynamics Guys answerable for the result, see Microsoft Dynamics 365 integration services.

How work with an integration engineer starts

Who answers alerts is agreed before the engineer gets access to your systems. Dates come only after your interview and the signed agreement, and no step has a fixed duration.

  1. Your role brief

    Name the systems on each side, the interfaces and their volumes, the failures you see today and who receives alerts now. Add your integration platform, your repository and the hours your team works.

  2. Fit review

    We check whether the gap needs an integration engineer, a product developer, an architect or a project. Before any introduction, we also tell you whether MS Dynamics Guys can staff the role.

  3. Assessed candidates

    Profiles reach you only for candidates who passed the interface exercise. Each comes with the candidate's mapping and key sheet, the replay procedure and the reviewer's notes.

  4. Your interview

    Repeat the mapping exercise on one of your own interfaces, with sensitive data removed. Your lead or architect decides who joins.

  5. Incident duties in writing

    The agreement names who receives alerts, who replays messages, who approves financial replays and who signs off reconciliation. It also states whether the engineer joins your on-call rotation, and for which hours.

  6. Read access, then an inventory

    Your administrators first grant read access to logs, telemetry and failed messages. The first task is an inventory of your interfaces, the identities they run as and the alerts that exist.

  7. First accepted change

    One small change, such as a new alert rule or a duplicate-safe write, is reviewed and accepted against criteria your lead wrote.

After that, how we work sets out how changes are reviewed, released and handed over.

The contractor onboarding checklist lists the accounts, repository access and exit steps that any external specialist needs.

Check an integration engineer against your own interfaces

Until we have approved cases, this page names no clients and quotes no reviews.

Three checks need no case study: the written result of the interface exercise, your interview and the first change your lead accepts or rejects. No exercise shows how a candidate works through a live incident. So in your interview, give the candidate the alert from the runbook entry below, and ask them to work through it aloud. Our screening page explains who reviews the interface exercise.

We wrote the runbook entry below as an original demonstration for this page. No client system supplied it, and it describes no candidate.

Demonstration: a runbook entry for one dead-lettered customer message, written for this page
Runbook fieldEntry
AlertThe dead-letter queue for customer updates holds one or more messages
First checkRead the dead-letter reason and the error description stored with each message
Data or code?A missing country code in the source record is a data problem. A mapping error after a release is a code problem.
FixThe customer data owner corrects the source record; the engineer does not edit customer data. A code problem gets a reviewed change, released through your pipeline.
ReplayResend the message after the fix, for example with Service Bus Explorer in the Azure portal. Customer updates need no finance approval; invoice and payment messages do.
ConfirmThe customer exists once in the target system, and the next reconciliation run shows no difference for it. A new cause goes into the failure catalog.

In a real assessment, the candidate writes an entry like this for a failure we describe, then walks the reviewer through each step.

Practical questions about hiring an integration engineer

Do we need an integration engineer or a developer for one product?

Look at where the work sits. Code inside one product, such as a plug-in, an extension or a cloud flow, belongs to a developer for that product. The integration engineer owns the path between systems: identities, queues or middleware, retries, alerts, replay and reconciliation. Many teams need both roles. The developer builds the endpoint, and the engineer makes the interface recoverable.

Our interfaces already run on an integration platform. Will the engineer move them to Azure?

No. Name your platform in the role brief, with the interfaces that run on it. Before any introduction, we tell you in writing whether we can staff the role for that platform. The engineer then works in your platform and your repository. Moving interfaces to another platform is a separate decision for your lead or architect. It is not part of the hire unless you ask for it.

Will the engineer join our on-call rotation?

That is agreed per engagement, and this page states no on-call hours. Before go-live, decide three things: which alerts need action outside working hours, who receives them, and who may pause an interface or replay messages. If the engineer joins the rotation, the agreement names the hours. If not, your own on-call person replays messages from the runbook without the engineer.

Who owns the Azure resources, secrets and code?

Your organization, under the written agreement. The Azure resources sit in your subscription, and you pay for them. Code, alert rules and runbooks live in your repository from the first commit. Your administrators create the identities and keep each secret in a vault you control, such as Azure Key Vault. The agreement sets ownership of code and documents before work starts.

How do on-call duty and Azure usage affect what we pay?

The pricing basis is agreed in writing per engagement, and this page quotes no rates. For an engineer in your team, the basis is usually time. On-call duty adds to the hours you need covered, so decide it before you ask for a price. The number of products and platforms involved, and the length of the engagement, also move the cost. Azure usage, monitoring data and Microsoft licenses stay with you, billed through your own subscriptions and agreements.

Can our team run the interfaces without the engineer?

Yes, and the handover is built for that. Each interface has a flow specification, a failure catalog and a runbook in your repository. Before the handover is accepted, your on-call person replays a message using only the runbook. Notice and replacement follow the written agreement. Before a planned exit, the engineer hands over open incidents, known failure patterns and pending changes. Your administrators then remove the engineer's identities and rotate every secret the engineer could read.

Describe an integration gap

Tell us the systems on each side, the interfaces involved, what fails today and who receives alerts now. Add your integration platform, your time zone and the hours your team works. Our first reply proposes a role for the failures you describe, or asks what we still need to know.

Product documentation referenced on this page