Supplier onboarding.
Evaluate evidence, request a signature, handle reminders and expiry, and activate against the signed agreement.
Inspect a path through the work.
Change the scenario to see the inputs, operations, and outcome. These are guided browser illustrations of repository reference products.
Wait for the business
Wait for a signature change or an absolute deadline. Inspect the current state before choosing the next operation.
- Supplier
- Meridian Components
- Document revision
- v3
- Signature request
- SIG-1042
- Supplier active
- false
- Business outcome
- No terminal outcome yet
What happens,
and why.
- 01
Create a case against the supplier’s evidence revision.
- 02
Assess the evidence and apply the declared review requirements.
- 03
Request a signature and record the provider’s delivery acknowledgment.
- 04
Wait until signed, cancelled, or the reminder deadline arrives.
- 05
Activate against matching evidence, or finish with an explicit expiry.
When the conditions are no longer met.
If the document revision or signature evidence no longer matches, activation is refused. A request that reaches its expiry ends with a business outcome distinct from an execution failure.
Activation has its own rules.
The Workflow coordinates the process. Its Action checks the current document and evidence before applying a change.
ActivateSignedAgreement
Activate only when the signed document revision and evidence match the request.
- Target
- SignatureRequest / SIG-1042
- Document input
- v3
- Current revision
- v3
- Review rule
- not required
Inspect the implementation.
delivered, err := product.Actions.SendSignatureRequest(product.ActionSendSignatureRequestInput{}, target) if err != nil { return nil, err } deliveryID, err := acknowledgedDeliveryID(delivered) if err != nil { return nil, err } if _, err := product.Actions.ConfirmSignatureDelivery(product.ActionConfirmSignatureDeliveryInput{DeliveryID: deliveryID}, target); err != nil { return nil, err } check, err := product.Functions.SignatureRequestTerminalCheck(product.FunctionSignatureRequestTerminalInput{RequestID: requestID}) if err != nil { return nil, err } firstWait, err := product.Signals.OnboardingSignatureChanged(target, waitCeilingMS, module.SignalOptions{DeadlineAt: input.ReminderAt, Until: check}) if err != nil { return nil, err } state, err := signatureState(requestID, firstWait) if err != nil { return nil, err } if outcome, done, err := finishTerminal(requestID, state, target); done || err != nil { return outcome, err } if _, err := product.Actions.SendSignatureReminder(product.ActionSendSignatureReminderInput{}, target); err != nil { return nil, err }The capabilities behind this example.
Bring us a process.
We'll build it with you.
A business process, the systems it touches, and the rules it needs to follow.