Onboard a new integration
Outcome. A new external system calls Lattice in production with its own identity and the narrowest role it needs, after its calls were proven without posting, and the operators watch it from its first day. Who takes part: Integration developer, Integration administrator, Integration operator. Stages that use standard pages (Microsoft Entra ID applications, Assign users to roles, the standard Business events catalog) need System administrator or the access named on the role page; the Lattice roles do not open them. How often: once per integration. The client is registered again in each environment it runs in.
1. Choose what to call (Integration developer)
Start from the business process, not the API: the operations that post or act, the entities that read or load data, and the events that tell your system about changes. If the partner sends files, start from a ready-made intake bundle.
- I want to find the operation for a business process
- I want to find the business event for a business moment and its payload
- I want to read data back efficiently
- I want to start from a ready-made intake bundle
Done when: you have a list of the operations, entities and events the integration uses, and you know which operations write, so the administrator can choose its role.
2. Review the contracts and design the calls (Integration developer)
Read each request, response and payload before you write code, and decide how your system calls: with its own keys or D365 ids, one document per call or many, synchronously or in the background.
- I want to review the request and response contract of a service operation
- I want to review the data contract of an OData entity
- I want to get a Postman collection or an OpenAPI specification
- I want to send my own keys instead of D365 ids
- I want to send many documents in one call
- I want to run a long posting in the background and collect the result
Done when: you have the sample request, or a Postman collection, for every operation on your list, and you know which members each request requires.
3. Register the client (System administrator, Integration administrator)
A System administrator gives the integration its own identity and role in the test environment, an Integration administrator adds any setup its calls depend on, and the developer receives the tenant ID, client ID and secret.
- I want to register an integration client
- I want to choose which Lattice role to assign
- I want to register external systems for cross-reference keys (if the client sends its own keys)
- I want to set up a file ingestion connection and I want to keep connection secrets in Azure Key Vault (if the partner sends files)
Done when: the client is on Microsoft Entra ID applications with its user and role, and the developer has its IDs and secret; for files, Test connection on Review and create reported all checks passed.
4. Build and test without posting (Integration developer)
Prove each call in the test environment before anything posts: a preview for the operations that have one, the simulator for files, and the call log for what really happened. An operation without a preview can only be tested by posting, so do that in the test environment.
- I want to authenticate and make a first call
- I want to make my calls safe to retry
- I want to try a posting without posting anything
- I want to run an operation from inside Finance and Operations
- I want to write and test a Liquid template for my files and I want to run a sample file through the pipeline without posting (files)
- I want to subscribe my system to a business event (on the standard business events pages)
- I want to trace one of my calls
Done when: your first preview or test posting is on Service call log and CalledBy in
LatticeServiceCallLogs is the client's dedicated user; each operation with a preview returns PreviewApplied
true; each test posting succeeds and a resend with the same RequestId posts nothing; every File ingestion
simulator step shows Succeeded; and your endpoint receives each event you subscribed to.
5. Cut over to production (System administrator, Integration administrator, Integration developer)
In production, a System administrator registers the client again with the narrowest role and activates the events it consumes, an Integration administrator sets up its logging, keys and file jobs, and the developer then points the client at production.
- I want to register an integration client (a separate registration for production)
- I want to choose which Lattice role to assign
- I want to set how much each service operation logs (keep high-risk operations at All)
- I want to register external systems for cross-reference keys (if the client sends its own keys; load existing records' keys in production too)
- I want to activate a business event and send it to an endpoint
- I want to set up a file ingestion connection and I want to schedule the Lattice jobs that are not background processes (if the partner sends files)
- I want to know when a contract I use changes
Done when: the first production posting is on Service call log with Preview clear and a Document ID, and, for files, the first file is on the Bundles tab of Inbound message inquiry with its records Processed on Segments.
6. Start monitoring (Integration operator)
Tell the operators the integration is live, which operations and files it uses and who owns the client. From now on its failures reach them through the daily check and the alerts.
- I want to see at a glance whether integrations are healthy
- I want to check call volumes and error rates
- I want to be alerted when something needs me
Done when: the integration's operations have rows on Service call statistics after the next daily rollup, and the operators include it in Monitor integrations every day.
If something goes wrong
- A call is refused while you build: I want to find out why my call was refused.
- File records stay Queued or fail: I want to follow a file from arrival to posting.
- Your endpoint receives no event: React to Lattice business events, when it goes wrong.
- Something fails after go-live: Respond to a failed integration.
Related
- Scenarios: Connect an integration client, Take a sales order from entry to invoice (an example of a full process), Inbound file to posted document, Send your own system's keys instead of D365 ids, Send many requests at once, or run long work asynchronously, Post a journal exactly once, React to Lattice business events.
- Intake accelerators.
- Process guides: Set up Lattice in an environment, Run recurring data jobs (for an integration that sends files through data management), Monitor integrations every day.