Touch
Records work performed while a Case remains in its current state. Examples include reviewing a claim or contacting a customer.
Understand the platform, configure one bounded Workstream, and connect an application with an Operon SDK. Each part can stand on its own, or you can follow all three from left to right.
One active Workstream, one stable Case correlation ID, and one accepted transaction whose path is visible in Operon.Cloud.
How Operon.Cloud represents work, flow, ownership, time, and value.
Operon.Cloud turns events already produced by an operation into trusted evidence. It does not replace the systems where work happens. It gives teams a consistent way to see where work is, how it moves, who participated, and what changed.
Each observed event becomes a signed Transaction. Transactions with the same correlation ID form a Case, and their Interactions explain both the work performed and the path taken.
Records work performed while a Case remains in its current state. Examples include reviewing a claim or contacting a customer.
Records flow from an expected current state to a next state. Examples include submitting a review or closing a request.
A DID identifies an Organization, System, API Client, or Person. A Participant connects that identity or operational role to a Workstream. The actor performing work and the assignee owning the next action can be different.
Processing Time shows elapsed calendar time in a state, including waiting and active work. Active Time shows estimated hands-on effort spent on a Touch.
Value Metrics connect workflow events to Baseline, Increment, and Savings. AI participation proves adoption inside the flow, while measurable operational change establishes impact.
Use Console to define a production-ready operational catalog.
The catalog is the shared contract between the operational design and every connected application. Configure it before issuing credentials.
Add the places where Cases wait or receive work. Set the default state, active status, SLA clock start or stop behavior, and a Source Code for integration lookup.
Add the actors, systems, or operational roles that perform or own work. Associate the correct DIDs and identify which Participant an integration will authenticate as.
Define each event as a Touch or Movement. For a Movement, configure expected current and next states. Add source and target Participants, active-time assumptions, Value Metrics, status, and a Source Code.
Open Graph View and confirm that the modeled states and Movements form the intended path. Resolve gaps and unintended loops before activating the Workstream.
State and Interaction Source Codes are customer-controlled catalog values that let external code find the current Operon object without storing its generated platform ID.
READY_FOR_REVIEWFetch WorkstreamstateIdCLAIM_REVIEWEDFetch InteractionsinteractionIdAfter the first event is submitted, find it in Transactions Explorer and confirm its Case path in Loop Atlas before expanding the configuration.
A reusable client lifecycle from credentials to verified evidence.
Before writing code, agree on the operational contract. This prevents a technically successful integration from producing an incorrect Case path.
stateId and interactionId. Always refresh the catalog and fail clearly when a mapping disappears. There is no implicit stale-ID fallback. Direct platform IDs remain supported when the application intentionally owns their lifecycle. Create one client per Operon credential configuration and reuse it for the application lifetime. Do not create or initialize a client for every request or transaction. When you use Source Codes, the reusable operation fetches current configuration, resolves the codes, and submits with the resulting platform IDs.
init once during startup to surface authentication errors early. Operations can also initialize the client lazily. init does not load or cache any platform catalog, including Workstream, State, Interaction, or Participant configuration. go get github.com/operon-cloud/operon-sdk/go@v1.5.0client, err := operon.NewClient(operon.Config{
ClientID: os.Getenv("OPERON_CLIENT_ID"),
ClientSecret: os.Getenv("OPERON_CLIENT_SECRET"),
})
if err != nil { return err }
if err := client.Init(ctx); err != nil { return err }func submitClaimReview(ctx context.Context, client *operon.Client) error {
workstream, err := client.GetWorkstream(ctx)
if err != nil { return err }
state := workstream.FindStateBySourceCode("READY_FOR_REVIEW")
if state == nil { return errors.New("state mapping not configured") }
catalog, err := client.GetWorkstreamInteractions(ctx)
if err != nil { return err }
interaction := catalog.FindInteractionBySourceCode("CLAIM_REVIEWED")
if interaction == nil { return errors.New("interaction mapping not configured") }
activeSeconds := 37
_, err = client.SubmitTransaction(ctx, operon.TransactionRequest{
CorrelationID: "case-123", InteractionID: interaction.ID,
StateID: state.ID, StateLabel: state.Name,
ActiveTimeSeconds: &activeSeconds,
Payload: []byte("{\"caseId\":\"case-123\"}"),
})
return err
}client.Close()Client credentials are the primary server-to-server path. Injected token providers and caller-owned PATs are advanced alternatives when the application already owns a scoped token lifecycle.
Store client credentials in a secret manager. Never commit them, include them in browser code, or write them to logs. Plan secret rotation and client disablement before launch.
Choose a catalog refresh policy that fits the application and fetch again after known administrative changes. Client reuse does not cache configuration and must not justify a stale ID when lookup fails.
Log transaction IDs, correlation IDs, Source Code lookup failures, and safe error details. Do not log credentials or sensitive raw payloads.
Exercise the scoped Participant, real catalog mappings, Case correlation behavior, error handling, and expected active-time and state progression before rollout.
Find the accepted event by transaction or correlation ID.
Confirm the Case path and state progression.
Review Control Tower, Resource Tower, and ROI Impact as configured data becomes available.
Expand only after the first transaction and its correlated Case path are visible and trusted. Add coverage while preserving clear boundaries, stable mappings, and reliable attribution.