Asking a chatbot to explain an order is one thing. Allowing it to change that order is another. OpenAI’s June function-calling announcement makes it easier for a model to produce structured arguments for a developer-defined function. That is a useful integration mechanism, but the application still has to decide whether a proposed call is valid and whether the person is allowed to request it.

Translate language into a small, explicit operation

Imagine a customer asking for the status of an order. The application could expose a narrowly defined lookup function with the fields it requires. The model proposes the arguments, and the server performs the authorised lookup. It is much easier to inspect that boundary than to let a model improvise an unrestricted database query.

The important distinction is between suggesting a call and executing it. A response in the right shape is not proof that the selected record belongs to the signed-in customer. Authentication, record ownership and input validation remain responsibilities of the application. They should not depend on a model being persuaded to follow an instruction.

Start with reading before changing

A first trial can use a read-only function: find an allowed delivery status or retrieve an approved product detail. Give the model only the fields needed to explain that result. That limits the number of ways an incorrect interpretation can affect the business while allowing the team to understand how the interaction behaves.

Test ambiguous requests, missing identifiers and questions outside the available functions. An assistant should be able to ask for clarification or explain that a staff member is needed. Forcing every conversation into a successful-looking function call hides uncertainty instead of resolving it. A clear refusal to guess can be a better customer experience.

The application owns the action boundary: Customer request; Proposed function arguments; Application checks; Approved system action
A model can propose structured arguments, while the application checks identity, validity and approval before a business system changes.

Put approval where a change becomes real

A cancellation, a message to another person or an update to account details needs a deliberate design. Show the proposed action and the relevant details before it is carried out, and use the appropriate confirmation or staff approval for its consequences. The confirmation should describe the operation, not merely ask whether the customer wants to continue chatting.

The June announcement also discusses the risk of untrusted tool outputs influencing behaviour. A product description or external page should be treated as data, not as permission to perform another action. Keep the tool’s scope narrow and validate the next request independently of whatever text was returned.

Review the integration as a business workflow

Log enough information to investigate failures without collecting unnecessary private content. Distinguish a model proposal, a rejected request, an approved action and a completed system response. Those states are useful to both a developer diagnosing a problem and a staff member explaining what happened.

Success is not the number of functions the assistant can name. It is whether a customer can complete a defined task and the business can account for the result. Function calling makes that connection more practical, provided the model’s role, the application’s checks and the human decision points remain separate and visible.