Before you start
Have the integration ready and decide how you will check the result. For a CRM update, that means inspecting the intended contact afterward; for a booking, it means checking the appointment record. Use a test account or reversible action while building.Configure the node
- Open the flow’s tool kit and add or select the required tool.
- Add a Tool node and choose that tool.
- Collect the values the tool requires before reaching this node. The model fills tool arguments from the conversation and available variables; inspect the actual input in the test result.
- Connect the node to the next conversational step.
- Keep the action synchronous when the next step needs its result.
Explain a wait
Speak During Execution can provide a short message while work runs. Use Static for fixed text such as “Let me check that”, or Prompt for generated filler. Keep filler neutral: “Your booking is confirmed” is inappropriate before the booking result is known.Background actions
An asynchronous tool may return an acknowledgement before the external action finishes. A later callback requires support from the receiving service and the configured callback path. Do not use that acknowledgement as proof that an email was delivered or a CRM record was updated. If downstream logic depends on the output, leave Async off. Avoid retrying a write until you have checked whether the first attempt already completed.Verify the action
Run a successful case and a failure case. Check the actual external record, not only the assistant’s wording. Confirm that failures lead to an honest recovery message. Resetting the conversation does not undo a completed external action.Tool node settings
The current node settings do not provide a parameter-mapping editor. Where an imported flow already contains explicit mappings, those mappings take precedence; otherwise the model fills missing arguments. If an exact request field/value mapping is essential, use an API Call node.
Outputs and background callbacks
A completed function node stores its result as text in{{_last_function_result}}. An error can populate {{_last_function_error}}; an old error is not a reliable status for a later successful call. Both are transient and are cleared when a Conversation step consumes tool history. Extract the values you need and verify the current tool result before branching.
Background HTTP tools need a receiver that supports the supplied callback contract. When callback support is configured, the JSON request includes _return_url and _async; the signed callback URL expires after 30 minutes. A session and server callback configuration are required. Do not enable Async for a tool merely because it appears in the selector: background execution does not use every part of the normal synchronous tool path.
A pending result confirms submission only. Keep subsequent conversation independent of the final outcome until the callback or external system confirms it.