Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.zapier.com/llms.txt

Use this file to discover all available pages before exploring further.

Introduction

The AI Actions API client can be used to interact with any of the API endpoints that AI Actions supports. Below are a few examples of common uses for the client.

Creating a client

See the authentication guide for more information on how to authenticate.
import { AiActions } from "@zapier/ai-actions";

const aiActionsClient = new AiActions({
  auth: {
    apiKey: "YOUR-API-KEY",
    // or...
    token: "OAUTH-TOKEN",
  },
});

Checking a user’s authentication

This is useful if you want to check if a user’s AI Actions OAuth token is valid.
try {
  await aiActionsClient.checkAuth();
} catch (error) {
  console.error("User is not authenticated", error);
}

Error handling

The @zapier/ai-actions package exports an AiActionsHttpError type that can be used to get JSON from errors.
import { AiActionsHttpError } from "@zapier/ai-actions";

try {
  await aiActionsClient
    .executeAction
    // ...
    ();
} catch (error) {
  if (error instanceof AiActionsHttpError) {
    const parsedError = await error.response.json();
    console.error("Error executing action", parsedError);
  }
}

Listing a user’s actions

Actions can be created or edited either on the AI Actions website or using the @zapier/ai-actions-react library
const actionList = await aiActionsClient.getActionList();

actionList?.results.forEach((action) => {
  // Each action has an ID that can be used to execute it, and it includes information about how the user
  // has set it up, such as the description and the app it's associated with.
  console.log(action.id, action.description); // "01EXAMPLE_ID Gmail: Find Email"
});

Executig an action

See the Run a stored action guide for more information on the available parameters.
const result = await aiActionsClient.executeAction(
  {
    ai_action_id: "YOUR_ACTION_ID",
  },
  {
    instructions: "Create a row with the following data....",
    params: {
      spreadsheet: {
        mode: "guess",

        // AI Actions will figure out the proper ID to use based on the hint,
        // that way you don't need to worry about knowing IDs!
        value: "My Spreadsheet",
      },
    },
    preview_only: false,
  },
);

console.log(result?.resolved_params, result?.full_results);

Search for Zapier apps and actions

const appSearch = await aiActionsClient.searchApps({ query: "Google Sheets" });

appSearch?.results.forEach(async ({ name, app }) => {
  console.log(name);

  const actionSearch = await aiActionsClient.searchActions({
    app,

    //  omit `query` to get all actions for the app
    query: "add spreadsheet row",
  });
});

Give feedback on an action run

If an execution doesn’t work properly, you can provide feedback on it to help us improve the AI.
const result = await aiActionsClient.executeAction({
  // ...
});

if (result) {
  await aiActionsClient.rateExecution({
    execution_log_id: result.execution_log_id,

    // -1: Negative feedback
    // 0: Neutral feedback
    // 1: Positive feedback
    rating: -1,
    feedback: "It didn't work for me!",
  });
}