Asynchronous operations

Certain operations, such as deleting a call or deleting a user, require additional time and processing power. As a result, these operations are executed asynchronously.

These tasks will return a task_id in the API response, you can use this id to monitor the task status.

Monitoring tasks

You can monitor these tasks using the GetTask endpoint. Calling this endpoint will provide information such as:

  • status: Current status of the task (see statuses below for more details)
  • result: Result of the task, depending on the nature of the task
  • error: If the task failed, this will contain information about the failure

Task Statuses

The task can have the following statuses:

  • pending: Task is pending and not running yet
  • running: Task is running and not completed yet
  • completed: Task is completed and successfully executed
  • failed: Task failed during its execution

Example

Asynchronous operations will return an ID, which you can use to monitor the task. Here's an example:

var response = client.exportUsers(ExportUsersRequest.builder().userIds(List.of("user-id1", "user-id2")).build()).execute();
var taskID = response.getData().getTaskID();

// get information about the task
var taskStatus = client.getTask(taskID).execute();

// just an example, in reality it can take a few seconds for a task to be processed
if (taskStatus.getData().getStatus().equals("completed")) {
    System.out.println("Export is completed");
}