Some products and features are in the process of being renamed. Generative playbook and flow features are also being migrated to a single consolidated console. See the details.
Stay organized with collections
Save and categorize content based on your preferences.
Some methods of the Conversational Agents (Dialogflow CX) API return a long-running operation.
These methods are asynchronous,
and the operation may not be completed when the method returns a response.
You can check on the status, wait for completion, or cancel operations.
Wait for an operation to complete
The following shows how to wait for an operation to complete.
REST
To poll an operation's status, call the get method for the
Operations
resource.
When the operation has completed,
the done field is set to true.
Before using any of the request data,
make the following replacements:
importcom.google.api.gax.longrunning.OperationFuture;importcom.google.cloud.dialogflow.cx.v3.AgentName;importcom.google.cloud.dialogflow.cx.v3.AgentsClient;importcom.google.cloud.dialogflow.cx.v3.AgentsSettings;importcom.google.cloud.dialogflow.cx.v3.ExportAgentRequest;importcom.google.cloud.dialogflow.cx.v3.ExportAgentResponse;importcom.google.protobuf.Struct;importjava.io.IOException;importjava.util.concurrent.ExecutionException;publicclassExportAgent{publicstaticvoidmain(String[]args)throwsIOException,InterruptedException,ExecutionException{// TODO(developer): Replace these variables before running the sample.StringprojectId="my-project-id";StringagentId="my-agent-id";Stringlocation="my-location";exportAgent(projectId,agentId,location);}publicstaticvoidexportAgent(StringprojectId,StringagentId,Stringlocation)throwsIOException,InterruptedException,ExecutionException{// Sets the api endpoint to specified locationStringapiEndpoint=String.format("%s-dialogflow.googleapis.com:443",location);AgentsSettingsagentsSettings=AgentsSettings.newBuilder().setEndpoint(apiEndpoint).build();// Note: close() needs to be called on the AgentsClient object to clean up resources// such as threads. In the example below, try-with-resources is used,// which automatically calls close().try(AgentsClientagentsClient=AgentsClient.create(agentsSettings)){ExportAgentRequestrequest=ExportAgentRequest.newBuilder().setName(AgentName.of(projectId,location,agentId).toString()).build();// Returns a future of the operationOperationFuture<ExportAgentResponse,Struct>future=agentsClient.exportAgentOperationCallable().futureCall(request);// get the export agent response after the operation is completedExportAgentResponseresponse=future.get();System.out.println(response);}}}
const{AgentsClient,protos}=require('@google-cloud/dialogflow-cx');constapi_endpoint=`${location}-dialogflow.googleapis.com`;constclient=newAgentsClient({apiEndpoint:api_endpoint});constexportAgentRequest=newprotos.google.cloud.dialogflow.cx.v3.ExportAgentRequest();exportAgentRequest.name=`projects/${projectId}/locations/${location}/agents/${agentId}`;// exportAgent call returns a promise to a long running operationconst[operation]=awaitclient.exportAgent(exportAgentRequest);// Waiting for the long running opporation to finishconst[response]=awaitoperation.promise();// Prints the result of the operation when the operation is doneconsole.log(response);
fromgoogle.cloud.dialogflowcx_v3.services.agents.clientimportAgentsClientfromgoogle.cloud.dialogflowcx_v3.types.agentimportExportAgentRequestdefexport_long_running_agent(project_id,agent_id,location):api_endpoint=f"{location}-dialogflow.googleapis.com:443"client_options={"api_endpoint":api_endpoint}agents_client=AgentsClient(client_options=client_options)export_request=ExportAgentRequest()export_request.name=(f"projects/{project_id}/locations/{location}/agents/{agent_id}")# export_agent returns a long running operationoperation=agents_client.export_agent(request=export_request)# Returns the result of the operation when the operation is donereturnoperation.result()
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-03-21 UTC."],[[["Some Dialogflow CX API methods involve long-running operations that are asynchronous and may not be immediately completed upon method return."],["You can monitor the status of these operations by using the `get` method on the `Operations` resource, where the `done` field indicates completion."],["When checking multiple operations, consider implementing rate limiting or use the `list` method to manage calls effectively."],["To wait for an operation to complete, utilize the `get` method (REST), `future.get()` (Java), `operation.promise()` (Node.js), or `operation.result()` (Python), depending on the language being used."],["The code examples in REST, Java, Node.js and Python illustrate how to make requests to the API and how to handle long-running operations."]]],[]]