Skip to content

Actions Component

Action components help your app collect user approval before running tools that change external state.

html
<configure-tool-approval
  tool="configure_email_send"
  action-id="act_123"
  timeout-seconds="60">
</configure-tool-approval>

<script>
  // Tool parameters are a JS property, not attributes:
  document.querySelector("configure-tool-approval").params = {
    to: "user@example.com",
    subject: "Draft follow-up",
  };
</script>
AttributeTypeDescription
toolstringTool name to approve, for example configure_email_send.
action-idstringYour identifier for this pending action; echoed in decision events.
timeout-secondsnumberCountdown; at 0 the component auto-emits configure:tool-deny.
paramsobject (JS property)The tool arguments to display. Set as a property, never an attribute.
EventDetailDescription
configure:tool-approve{ actionId }User approved. Execute the tool server-side.
configure:tool-deny{ actionId }User denied, or the countdown hit zero.
configure:tool-always-allow{ actionId }User approved and asked to skip future prompts for this tool.

Use action approval UI before executing action tools such as:

  • configure_email_send
  • configure_calendar_create_event
  • configure_sheets_values_update
  • configure_sheets_values_append

The component does not call model tools by itself. Your server still decides which actions the app supports through profile.tools({ actions }) and executes only authorized calls with profile.executeTool().

Personalization infrastructure for agents