> Fetch clean Markdown by appending `.md` to any page URL under https://signalwire.com/docs or requesting it with the HTTP header `Accept: text/markdown`. The root index at https://signalwire.com/docs/llms.txt lists the available documentation indexes. # rpc_ai_global_data > Merge data into another call's global_data without adding a conversation turn. [functionresult]: /docs/server-sdks/reference/python/agents/function-result [rpcaimessage]: /docs/server-sdks/reference/python/agents/function-result/rpc-ai-message Merge data into another call's `global_data` without injecting a conversation turn. A thin wrapper over [`rpc_ai_message()`][rpcaimessage] with only `global_data` set. Use it when the other call needs a value rather than an instruction; the destination prompt reads it back with `${global_data.key}`. ## Parameters **`call_id`** `str` — required Call ID of the target call. --- **`data`** `dict[str, Any]` — required Object merged into that call's `global_data`. Existing keys not in `data` are left in place. --- ## Returns [`FunctionResult`][functionresult] — self, for chaining. ## Example ```python {11-13} from signalwire import AgentBase from signalwire import FunctionResult agent = AgentBase(name="my-agent", route="/agent") agent.set_prompt_text("You are a helpful assistant.") @agent.tool(name="share_eta", description="Send the ETA to the waiting caller") def share_eta(args, raw_data): waiting_call_id = args["waiting_call_id"] return ( FunctionResult("Tell the driver the passenger has been updated.") .rpc_ai_global_data(waiting_call_id, {"eta_minutes": args["eta_minutes"]}) .rpc_ai_unhold(waiting_call_id) ) agent.serve() ``` > Merge data into another call's global_data without adding a conversation turn.