Catalogue › Integration and Data › erp-and-project-touchpoints
ERP and project touchpoints
- Department
- Integration and Data
- Stages
- Strategize, Initiate, Implement
- Modules
- Sales, Customer Service, Field Service
- Status
- reviewed
- Copilot Cowork
- Integration and Data plugin for Copilot Cowork, or this skill on its own: Download SKILL.md
- Claude Code
/plugin install integration-and-data@d365forge- Licence
- CC BY 4.0, by Simon Foote, Robert Peledie
The CRM and the ERP both believe they own the customer. Projects go wrong by letting sellers create accounts the ERP will not accept, by copying price lists that drift within weeks, and by replicating stock levels that are stale by the time anyone quotes from them. The CRM team often assumes finance will sort out the ERP side, and finance assumes the opposite, so the boundary is designed by nobody.
Dual-write tends to be mentioned in early workshops whatever the ERP is. It is specific to the Dynamics 365 finance and operations apps. With any other ERP, every touchpoint is an ordinary integration that has to be designed, built and supported.
When to use
- Agreeing which system masters customers, products, prices, payment terms and credit, and when a CRM account becomes a trading customer.
- Scoping quote to cash: where quotes, orders and invoices are created and where their status is visible.
- Deciding how sellers, service agents and technicians see stock, credit status and invoices.
- Routing Field Service or Project Operations time, expenses and material usage to finance.
Not this skill: integration-and-data:integration-architecture for patterns and technology, sales:quotes-and-orders and sales:products-and-price-lists for the CRM configuration itself, field-service:inventory-and-purchasing for Field Service inventory design.
Questions to ask first
- Which ERP is it, and is it a Dynamics 365 finance and operations app? This decides whether dual-write and the native Field Service and Project Operations integrations are options at all.
- At what point does a prospect become a trading customer, and who approves it? Credit control usually owns this, and the CRM process must hand over cleanly.
- Where is price calculated: CRM price lists, the ERP pricing engine, or both? Discounts and trade agreements calculated in two places will disagree.
- Where does an order originate: CRM, the ERP or an e-commerce channel? This sets the direction of flow and the master for order status.
- What do CRM users need to see from the ERP, as opposed to act on? Seeing invoice history rarely justifies copying invoices into Dataverse.
Approach
Work entity by entity from the CRM side. For each, write down the master, the event that makes data cross, the direction, and what CRM users may still edit afterwards. These defaults hold up on most projects:
- Customers. CRM masters prospects and relationship data (contacts, activities, hierarchy, segmentation). The ERP masters trading customers, credit limits, payment terms and tax details. Create the ERP customer at a defined event (won opportunity, first order or credit approval), write the ERP account number back as an alternate key on the CRM account, and make the finance fields read-only in CRM from then on.
- Products and pricing. The ERP is normally the product master. Push products, units and price lists into Dataverse so sellers can quote without leaving CRM, but agree whether CRM may add discounts or bundles and how often prices refresh. Where pricing logic is genuinely complex, call the ERP at quote time instead of rebuilding its rules in plug-ins.
- Orders and invoices. Let quotes and draft orders start in CRM if sellers need them, but once submitted the order belongs to the ERP; return status, shipment and invoice summaries to CRM. Invoices suit a virtual table or embedded view better than a full copy.
- Inventory. Look up availability on demand rather than replicating on-hand quantities for sellers. Field Service is different: technicians consume parts and warehouse movements must post back, so design that with the Field Service team.
- Time and expenses. Field Service and Project Operations capture time, expenses and material usage that finance needs for billing, payroll and project accounting. Use approval as the trigger to cross, and treat the ERP as master once posted.
Then choose the mechanism. With finance and operations apps, evaluate dual-write and the native Field Service and Project Operations integration options, checking current Microsoft Learn documentation for supported table maps, initial synchronisation, prerequisites and which Project Operations deployment scenario applies. Dual-write couples the two systems closely, so test what users experience when either side is unavailable or a map is paused. With any other ERP, route each touchpoint through integration-and-data:integration-architecture like any other interface, using the ERP account number and product number as alternate keys so messages are idempotent.
Finally, walk the end-to-end process with both teams in the room: a prospect becoming a customer, a quote becoming an order and an invoice, a technician's time becoming a bill. Each hand-over point should name the status that triggers it and the team that fixes it when it fails.
Outputs
- Master data ownership matrix by entity and field, signed by sales operations and finance.
- ERP touchpoint rows in the
integration-inventory, one per entity and direction. - Quote-to-cash and time-to-billing process flows showing where each status lives.
- Dual-write or native integration decision, where finance and operations apps are in scope, recorded in the
solution-blueprint. - Open ownership questions and ERP team dependencies in the
raid-log.
Scale notes
SMB
Often a small accounting or ERP package and one person who knows it well. Keep crossing points few: customer creation, product and price refresh, and invoice visibility. Re-keying low volumes of orders can be acceptable if it is a deliberate, documented decision with a review date. Do not skip the master data ownership agreement; it takes an hour and prevents months of duplicate customers.
Enterprise
CRM and ERP programmes often run on different calendars, so agree a joint integration backlog, shared test environments and one defect process. Expect a finance data owner per master entity, design authority review of any field mastered in two places, and integration testing that proves ERP posting, not just message delivery. Where finance and operations apps are in scope, environments for dual-write must be linked in step with the environment strategy.
Hand-offs
integration-and-data:integration-architecturefor patterns, error handling and monitoring.sales:products-and-price-lists,sales:quotes-and-ordersandfield-service:inventory-and-purchasingconfigure the CRM side.solution-architecture:cross-module-data-modelreflects the ownership decisions in the data model.testing-quality:system-integration-testingcovers quote to cash and time to billing end to end.- Reviews:
design-authority:design-reviewfor ownership and mechanism decisions, andsecurity-compliance:security-model-reviewfor financial data made visible in CRM.
Sources
references/sources.md in this skill lists the outside authorities for the questions here, what each is authoritative for, and what you may do with it. Check the current Microsoft Learn documentation before stating how a feature behaves, because Dynamics 365 changes monthly, and cite what you used.
Never
- Let CRM and the ERP both edit customer financial fields after the customer exists in the ERP.
- Replicate on-hand inventory into Dataverse for sellers to quote from.
- Propose dual-write for an ERP that is not a Dynamics 365 finance and operations app.
- Rebuild ERP pricing rules in CRM plug-ins or flows without the finance owner's agreement.
- Treat message delivery as proof that an order or time entry posted correctly in the ERP.
Sources for this skill
Dataverse developer documentation
- Publisher: Microsoft (Global)
- Link: https://learn.microsoft.com/en-us/power-apps/developer/data-platform/
- Authoritative for: Web API, SDK, plug-ins, custom APIs, virtual tables and component development on Dataverse.
- What you may do: Read and cite. Summarise in your own words; do not reproduce the text.
- Last checked: 2026-10-15
Requests limits and allocations
- Publisher: Microsoft (Global)
- Link: https://learn.microsoft.com/en-us/power-platform/admin/api-request-limits-allocations
- Authoritative for: Request limits and allocations that constrain integrations, flows and migrations.
- What you may do: Read and cite. Summarise in your own words; do not reproduce the text.
- Last checked: 2026-10-15
UK GDPR guidance and resources
- Publisher: Information Commissioner's Office (UK)
- Link: https://ico.org.uk/for-organisations/uk-gdpr-guidance-and-resources/
- Authoritative for: The UK regulator's guidance on lawful basis, individual rights, retention and accountability under UK GDPR.
- What you may do: Reuse terms not yet confirmed. Treat as read and cite only.
- Last checked: 2026-10-15
Credit
This skill was created by Simon Foote and Robert Peledie as part of D365Forge, licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Credit them when you share or adapt it; see https://github.com/SimonFoote-greensparx/D365Forge/blob/main/NOTICE.md.