Backend Integration and Custom Components
Domain 3 - Backend Integration and Custom Components. The exam tests how a skill reaches real systems: declarative REST calls from flows, and custom components when the logic does not fit a component's inputs. Expect questions on component metadata, registration, and failures that leave the conversation hanging.
Calling backends from flows
For a simple GET or POST, use the flow's REST/API integration rather than code: set the endpoint, method, headers (including auth), query parameters and body from FreeMarker expressions, and capture the JSON response into a flow variable. Keep credentials out of flow definitions - hold them in a backend service, a vault, or the component service's configuration and reference them at runtime. Always branch on the HTTP status and on the error state, returning a friendly fallback message instead of letting the flow terminate.
Custom components
A custom component is a Node.js class built with the Oracle bots Node SDK. It implements metadata(), declaring the component name, its properties and their types, and invoke(context, done), which reads inputs from the context, does the work, sets variables and calls done. You deploy it as a component service, register that service URL with the digital assistant, and the component then appears in the flow palette with the declared properties as inputs. The service must be network-reachable from the instance, and calls must be time-bounded.
Worked example
A CRM lookup needs pagination and response reshaping, so a plain REST call is a poor fit. Write a CrmLookup component with properties email and maxResults. invoke calls the CRM, follows pages, maps the result to {orders: [...]}, sets crm.orders, and calls done. The flow then branches on an empty array. Reason: multi-call logic and shaping, not a single request.
Traps
Changing metadata without re-registering the service, so old inputs persist in the palette; assuming the component service is internet-reachable; putting secrets in flow variables; forgetting to call done on an error path, which hangs the bot.