I want to bring a model like OpenAI or Claude into my workflow but I’m not sure of the cleanest way to do it. What’s the recommended approach in 3B, and how do I deal with credentials and the response? Is there a native way, or am I better off calling the API directly?
Great question, and it’s one worth getting right early because the clean approach saves you a lot of fiddling later.
The recommended way to think about it: there’s a dedicated AI step for this. Rather than hand-rolling HTTP calls to OpenAI or Claude, you use the step built for talking to models. It handles the shape of the request and response for you, and it’s where the nice extras live, things like tool use, conversation handling, and streaming. For most cases, that’s the cleanest path and where I’d start.
On credentials, the golden rule is don’t hardcode keys. Attach the model provider as a connector, and authentication gets injected for you at request time. Your workflow references the connector rather than the secret itself, which keeps keys out of your code and out of version history, and makes it easy to rotate them or swap accounts without touching the build.
On the response, you get the model’s output back as the step’s result, which you then reference downstream like any other step’s output. If you want structure you can rely on, ask the model for JSON in a stable shape and parse it in the next step, rather than trying to pull fields out of free-form prose. That makes everything after the model call predictable.
Now, the “or call the API directly” question. You can, and there’s a narrow set of reasons to: if you need a provider-specific feature the native step doesn’t surface yet, or something like Anthropic’s Batches or Files API for high-volume or large-payload work. In those cases you drop into a code step and make the request yourself, still using the connector for auth so you’re not hardcoding anything. But for the everyday “send a prompt, get a response, maybe use some tools” flow, the native AI step is the cleaner choice and the one to reach for first.
Short version: use the AI step by default, attach the provider as a connector so credentials are injected, ask for structured output, and only drop to direct API calls for provider-specific features the native step doesn’t cover yet.
3B allows you to bring your own model, so if you use something other than OpenAI or Claude, you can connect that too. It’s model agnostic.