Skip to content

Connectors Reference

Connectors are external accounts and data sources that a user links to Configure. Gmail, Outlook, Calendar, Drive, Notion, and Google Sheets are connectors. Model-callable functions are tools. profile is a profile object from configure.profile(); see Profile Reference.

Use profile.tools() to expose app-supported tools to a model, and profile.executeTool() to run tool calls. Tool visibility means app capability, not user authorization. Connector, action, utility, UI, and advanced tools are never included by default. The four profile tools (configure_profile_read, configure_profile_search, configure_profile_remember, and configure_profile_forget) are always returned, even by profile.tools({}).

configure_profile_forget deletes one memory this agent previously saved. The id comes from the remember or commit result (format mem_...). It deletes only from the agent's own server-resolved namespace: it cannot delete another agent's memories or imported memories, and an unknown id returns a clean not-found result, never an error. The optional date makes the delete a direct lookup instead of a namespace scan. reason defaults to "correction"; "user_request" additionally suppresses the same content from every source and blocks it from being re-saved or re-imported. executeTool() routes the call to profile.forget().

tools() is synchronous and returns ConfigureToolDefinition[] in Anthropic shape ({ name, description, input_schema }). Use the exported toOpenAIFunctions(tools) helper for OpenAI function shape. Each tools() call replaces the enabled set for this profile object: the last call wins, and a later call revokes tools enabled by an earlier call for executeTool().

ts
const tools = profile.tools({
  connectors: ["gmail", "calendar", "drive", "notion", "sheets"],
  actions: ["email.send", "calendar.create_event"],
});

Supported Connectors

ConnectorKeyTool namePurpose
Gmailgmailconfigure_gmail_searchSearch connected email when explicitly enabled. Optional account (connected account ID or email) scopes to one account; omitted, all connected Gmail accounts are searched and results include accounts_searched.
Outlookoutlookconfigure_email_searchSearch every permitted Gmail and Outlook account when explicitly enabled. Optional provider or account narrows the search; results report provider, account coverage, and partial failures.
Calendarcalendarconfigure_calendar_getRead connected calendar events when explicitly enabled. Its only parameter is range: today, tomorrow, week, or month (default week). There is no query or single-event get.
Drivedriveconfigure_drive_searchSearch connected files when explicitly enabled.
Notionnotionconfigure_notion_searchSearch connected Notion pages when explicitly enabled.
Google Sheetssheetsconfigure_sheets_search, configure_sheets_readSearch connected spreadsheets and read bounded ranges when explicitly enabled.

The connector key type is ConnectorName = "gmail" | "outlook" | "calendar" | "drive" | "notion" | "sheets". Only the outlook key adds configure_email_search; gmail alone never exposes it. Enabling both keys yields both search tools. Enabling outlook also swaps email.send to the hosted send tool with a provider selector.

Connector results depend on user consent and account connection state. If a connector is enabled but the user has not connected that account, executeTool() throws a ConfigureError (for example code TOOL_NOT_CONNECTED) instead of silently falling back to profile memory. Catch it and branch on error.code.

Actions

Actions change external state, so they are opt-in separately from connector reads. Expose the actions your app supports when your product has the corresponding hosted approval or confirmation path. Approval is enforced by the backend and hosted UI; there is no client-side approval registration in the SDK. Execution still fails closed if linked state, connector state, permissions, scopes, or approval state are missing.

ts
const tools = profile.tools({
  actions: ["email.send", "calendar.create_event", "sheets.values_update", "sheets.values_append"],
});
ActionTool namePurpose
email.sendconfigure_email_sendSend email when the app supports sending and execution is authorized. Gmail-only runtimes retain default-account behavior. Outlook-aware runtimes require provider or account when more than one provider is available.
calendar.create_eventconfigure_calendar_create_eventCreate a calendar event when the app supports calendar writes and execution is authorized.
sheets.values_updateconfigure_sheets_values_updateUpdate a bounded range in a connected spreadsheet when execution is authorized.
sheets.values_appendconfigure_sheets_values_appendAppend rows to a connected spreadsheet when execution is authorized.
sheets.create_spreadsheetconfigure_sheets_create_spreadsheetCreate a new spreadsheet when execution is authorized.
sheets.add_sheetconfigure_sheets_add_sheetAdd a sheet tab to an existing spreadsheet when execution is authorized.

profile.executeTool() has this signature:

ts
executeTool(toolCall: ConfigureToolCall): Promise<unknown>

It accepts { name, arguments }, Anthropic's { name, input }, or OpenAI's { function: { name, arguments } }; arguments can be a JSON string. It throws ConfigureError with code ACCESS_DENIED for any tool, connector or action, that is not enabled for the current profile object. When an enabled action cannot run, catch the thrown ConfigureError, branch on error.code, and send the user through hosted connect, reconnect, permissions, or approval UI.

Utility And UI Tools

The advanced option has three flags, all off by default:

  • advanced.commit exposes configure_profile_commit as a model tool for MCP/adapter runtimes only. Commit is normally server-side write-back after a profile read, not a default model tool; enable this only when your host requires manual write-back.
  • advanced.files exposes the raw profile file tools: configure_file_read, configure_file_write, configure_file_list, configure_file_search, and configure_file_delete.
  • advanced.utilitySearch exposes the utility tools configure_web_search and configure_url_fetch, enabled only when the host wants Configure to provide those web utilities.
ts
const tools = profile.tools({
  advanced: { utilitySearch: true },
});

Hosted UI helpers are separate from profile.tools(). They are browser or runtime surfaces for connection, profile, import, and approval flows; they do not prove user authorization and they are not part of the default model tool set.

Personalization infrastructure for agents