Current product reference
Set up a new onboarding
Midway represents an onboarding as a published definition and an instance of that definition. The definition specifies the checklist, evidence contract, completion gates, agent instructions, and optional HTTP integrations. The instance provides the administrator and public collaboration workspaces.
Data model
| Object | Purpose |
|---|---|
| Definition | Versioned configuration for a reusable onboarding process. |
| Criterion | One checklist requirement, its accepted evidence, dependencies, and gates. |
| Onboarding | A live checklist and conversation created from one published definition version. |
| Evidence | Immutable user input, including files and answers, linked to applicable criteria. |
| Artifact | Agent-generated output with hashes, lineage, and transformation records. |
1. Create a definition
- Open Templates → New definition.
- Enter a name and description. Definitions with the same normalized name receive sequential version numbers.
- Enter agent instructions specific to the onboarding. The runtime already directs the agent to repair, map, normalize, and reformat usable inputs before requesting replacements.
- Add at least one criterion and save the definition as a draft.
- Review the draft and publish it. Only published definitions can be instantiated.
2. Configure checklist criteria
Each criterion currently supports the following configuration.
- Key: a stable lowercase identifier matching
[a-z][a-z0-9_-]{0,63}. - Name, description, and customer guidance: text shown in the checklist and supplied to the agent.
- Group: a display grouping in the public checklist.
- Dependencies: criterion keys that must be satisfied or waived first.
- Accepted evidence: file, text, URL, structured data, confirmation, or external evidence.
- Required and waivable: whether completion is expected and whether an administrator can waive the criterion.
- Agent judgment: require the agent to propose satisfaction.
- Downloadable output required: prevent satisfaction until the agent identifies at least one complete generated artifact for the criterion.
- Validators: require all or any configured validator keys to pass for the exact evidence and artifact hashes.
- Human approval: hold an agent proposal until an administrator approves it.
- Blocking finding codes: finding codes that prevent satisfaction until resolved or dismissed.
The current definition form fixes conservative transformation policy defaults: partial and lossy artifacts are disabled, validator failures block, and inferred values require approval.
3. Configure optional integrations
The definition form accepts JSON arrays for context sources, validators, and destinations. All are optional. Endpoint methods areGet,Post, orPut.
Context source
Exposes a native fetch_context tool to the agent. The agent decides whether the source is needed and selects it by key. Endpoint URLs and credentials remain in the application control plane and are not exposed to the model.
OnStartcaches the first requested snapshot for the onboarding.PerTurnreuses the first requested snapshot within a turn.Manualrefreshes on every tool call.Ttlreuses an unexpired requested snapshot.
Every successful response is stored as immutable external evidence with a SHA-256 hash. The tool returns its evidence ID for artifact and criterion lineage. A source failure can warn or hold assessment.
[
{
"key": "account_context",
"name": "Account context",
"enabled": true,
"url": "https://api.example.com/onboarding-context",
"method": "Post",
"headersTemplate": {},
"authentication": {
"type": "bearer",
"token": "paste-customer-token-here"
},
"agentRequest": {
"mode": "Schema",
"allowQuery": true,
"allowHeaders": false,
"allowSensitiveHeaders": false,
"allowBody": false,
"instructions": "Fetch one entity type at a time.",
"schema": {
"type": "object",
"properties": {
"query": {
"type": "object",
"properties": {
"entityType": {
"enum": ["members", "vendors", "products"]
}
},
"required": ["entityType"],
"additionalProperties": false
}
},
"required": ["query"],
"additionalProperties": false
}
},
"timeoutMs": 10000,
"maxResponseBytes": 1048576,
"refreshPolicy": "PerTurn",
"onFailure": "Warn"
}
]Set agentRequest.mode to Unrestricted to let the agent provide any bounded JSON body, query parameters, and enabled application headers to this fixed endpoint. Set allowSensitiveHeaders only when the agent may also construct authorization, cookie, or API-key headers. Stored endpoint authentication cannot be overridden.
{ type: "header", headerName: "X-API-Key", value: "…" }instead.A context endpoint without an agent-supplied or static body receives the following default JSON. Parameterized sources may instead receive the configured exact JSON body. The response may be JSON or text and remains subject to the configured response-size limit.
{
"contract": "context-source/v1",
"organizationId": "<organization-id>",
"onboardingId": "<onboarding-id>",
"variables": {}
}Validator
Receives an onboarding ID, criterion ID and key, and the exact IDs and SHA-256 hashes of evidence and artifacts under the validator/v1 contract.
[
{
"key": "customer_file",
"name": "Customer file validator",
"enabled": true,
"url": "https://api.example.com/validate/customers",
"method": "Post",
"headersTemplate": {},
"credentialReference": "example_api",
"timeoutMs": 30000,
"maxResponseBytes": 1048576,
"mode": "Sync",
"onError": "AdminAttention"
}
]The response is strict JSON:
{
"contract": "validator/v1",
"decision": "pass",
"checkId": "check-123",
"findings": [],
"resultExpiresAt": null
}Destination
Sends the current immutable artifact manifest. Deliveries include an idempotency key and preserve the first-attempt manifest across retries.
[
{
"key": "import_api",
"name": "Import API",
"enabled": true,
"url": "https://api.example.com/imports",
"method": "Post",
"headersTemplate": {},
"credentialReference": "example_api",
"timeoutMs": 30000,
"maxResponseBytes": 1048576,
"trigger": "Manual",
"payload": "ArtifactsAndSummary"
}
]COLLABORATION_CREDENTIALS_JSON. Production endpoints must use HTTPS on the default port and resolve only to public addresses.4. Start an onboarding
- Open Onboardings → New onboarding.
- Enter an instance title and select a published definition version.
- Create the onboarding.
- Copy the generated public share link immediately. The raw capability token is displayed at creation time and is stored only as a hash.
- Send the share link to the participant who will supply the inputs.
5. Operate an onboarding
The public workspace currently provides:
- A grouped checklist, completion count, and needs-action filter.
- Chat messages and ordered file attachments in a single conversation flow. General submissions are left for the agent to classify.
- Direct file uploads: up to 20 files per submission, 250 MiB per file, and 1 GiB total.
- Responses to upload, answer, choose, and confirm requests.
- Evidence, generated artifacts, transformation summaries, assumptions, and findings by criterion.
- Automatic polling while an agent turn is queued or running.
The administrator workspace currently provides:
- The same checklist state and the full public or internal conversation.
- Customer-visible messages and internal notes.
- Manually requested uploads, answers, choices, and confirmations.
- Approval of pending criterion proposals, waivers where allowed, and finding dismissal.
- Manual delivery to configured destinations.
Current limits
- Definition and integration configuration is performed in the web interface; there is no public definition-management API.
- Optional integration arrays are entered as JSON rather than through dedicated field editors.
- The public composer has dedicated controls for files, free text, choices, and confirmations. URL, structured, and external evidence kinds are supported by the definition model but do not yet have dedicated public controls.
- Published definitions are versioned records and are not edited in place by the current interface.
- Delivery is exposed as an administrator action when a destination is configured. A general participant-facing submission action is not exposed.
- Integration credentials require deployment configuration; administrators cannot enter secret values in the definition form.