Skip to main content
Native tools are predefined tools integrated into the platform that allow the AI model to perform specific actions during a conversation. These tools extend the capabilities of the AI agent beyond text generation, allowing it to interact with the system, query information, manipulate data, and execute concrete actions. Native tools are found and configured in the AI Agent node. To access them:
  1. Select the AI Agent node in your flow
  2. Open the TOOLS section in the node configuration
  3. Click the ”+ Add tools” button
  4. In the “Select a Tool” field, you will see the list of all available tools, including native ones (marked with the text “(Native)”)
Native tools configuration in the AI Agent node
Below are descriptions of all native tools available in the AI Agent node: Searches products in the available catalog to recommend to the user. Uses a search engine to find matches based on the product name or related terms. Parameters:
NameTypeRequiredDescription
productstringYesSearch term or product name.
top_knumberNoMaximum number of results to return.
score_thresholdnumberNoMinimum similarity score (0.0 to 1.0) to consider a result relevant.
client_reference_idstringNoCustomer reference ID for personalized searches.
Prompt Example:
“If the user asks about the availability of a specific item or model, you MUST use the search_products tool to query the catalog before responding.”
Arguments Example:
{
  "product": "iPhone 15 Pro",
  "top_k": 5,
  "score_threshold": 0.85
}
Response: Returns a list of products found or a message indicating that no results were found. In case of error, returns a descriptive system message. Notes:
  • Requires the bot to have a product catalog configured and accessible.

Transfer to agent

Transfers the user’s current conversation to a human agent or an attention queue. Allows specifying routing strategies and priorities. Parameters:
NameTypeRequiredDescription
assignment_typeenumNo (Default: direct)Assignment method: direct (immediate) or queue (ticket queue).
assignment_byenumNo (Default: shuffle)Routing strategy: shuffle (auto), team, operators, general.
teamIdnumberNo*Team ID. *Required only if assignment_by is ‘team’.
operatorIdnumberNo*Operator ID. *Required only if assignment_by is ‘operators’.
prioritynumberNo (Default: 0)Queue priority (0-10), only relevant for assignment_type='queue'.
Prompt Example:
“When the user expresses frustration or explicitly requests to speak with a real person, execute the transfer_to_agent function immediately.”
Arguments Example: Case: Automatic direct transfer (most common)
{
  "assignment_type": "direct",
  "assignment_by": "shuffle"
}
Case: Direct transfer to a team
{
  "assignment_type": "direct",
  "assignment_by": "team",
  "teamId": 4501
}
Case: Create ticket in general queue
{
  "assignment_type": "queue",
  "assignment_by": "general",
  "priority": 5
}
Response: Returns a JSON object with the result of the operation indicating whether the transfer was initiated successfully. Notes:
  • Can end the AI flow immediately.
  • When using assignment_type: "queue" with assignment_by: "general", a ticket is created in the general attention queue.
  • Important: Team or operator IDs must not be made up; only those explicitly configured should be used.

Send interactive messages

Sends a structured or interactive message to the user. The exact format depends on the channel (WhatsApp, Web, etc.), but generally includes buttons or option lists. Parameters:
NameTypeRequiredDescription
textstringYesMain content of the message. Maximum 1024 characters.
titlestringNoHeader/title of the message. Maximum 60 characters.
captionstringNoSubtitle or complementary description. Maximum 60 characters. In WhatsApp with 4+ options, used as the button text that expands the list.
optionsarrayYesList of options/buttons. See structure below.
Structure of options (Array of objects):
  • title (string, required): Text of the option/button. Maximum 20 characters. Duplicate titles are not allowed.
  • description (string, optional): Additional description of the option. Maximum 72 characters.
Prompt Example:
“If the user asks what services we offer, you MUST use send_interactive_message to display a menu with the available options.”
Arguments Example (Buttons - 3 or fewer options):
{
  "text": "How would you like to continue with your query?",
  "title": "Service Options",
  "caption": "Select an option",
  "options": [
    {
      "title": "Talk to Agent",
      "description": "Transfer to human support"
    },
    {
      "title": "View Catalog",
      "description": "Browse available products"
    }
  ]
}
Arguments Example (WhatsApp List - 4+ options):
{
  "text": "We have several departments available to assist you.",
  "title": "Departments",
  "caption": "View options",
  "options": [
    { "title": "Sales", "description": "Product and pricing queries" },
    { "title": "Technical Support", "description": "Help with technical issues" },
    { "title": "Billing", "description": "Payment queries" },
    { "title": "Returns", "description": "Manage returns" }
  ]
}
In WhatsApp, when you send 4 or more options, the message is displayed as a dropdown list. The caption value is used as the button text that opens the list (in the example above, “View options”).
Response: Returns "Message sent successfully." if the sending was successful or an error message otherwise. Notes:
  • Sends a real message to the user.
  • The message type adapts automatically according to the channel and number of options.

Send Call to Action (CTA)

Sends a call-to-action button that opens an external URL. It can be configured as a WebView for forms or payments that require waiting for a user response. Parameters:
NameTypeRequiredDescription
textstringYesMain content of the message.
urlstringYesURL that opens when the button is clicked.
display_textstringYesCTA button text. Maximum 20 characters.
titlestringNoHeader/title of the message.
captionstringNoSubtitle to complement the message.
is_webviewbooleanNoIf true, sends as a WebView that pauses the flow and waits for a callback. Default: false.
expiration_timenumberNoSeconds to wait for the callback before expiring. Default: 300. Only applies when is_webview=true.
pending_messagestringNoMessage to show if the user sends text while waiting for the WebView callback.
response_variablestringNoName of the variable where the callback response will be saved.
inputstring | objectNoData to pass to the WebView as URL parameters.
Prompt Example:
“When the user confirms they want to make the payment, use send_call_to_action with is_webview=true to send the payment link and wait for confirmation.”
Arguments Example (Simple CTA):
{
  "text": "Visit our online store to see all available products.",
  "url": "https://store.example.com/catalog",
  "display_text": "View Catalog",
  "title": "Online Store"
}
Arguments Example (WebView waiting for response):
{
  "text": "Click the button to complete your payment securely.",
  "url": "https://payments.example.com/checkout",
  "display_text": "Pay Now",
  "title": "Complete Payment",
  "is_webview": true,
  "expiration_time": 600,
  "pending_message": "Please complete the payment in the opened window before continuing.",
  "response_variable": "payment_result",
  "input": {
    "order_id": "12345",
    "amount": 99.99
  }
}
Response:
  • Normal CTA: "Call-to-action message sent successfully."
  • WebView: "WebView message sent. Waiting for user action."
Notes:
  • Available only for WhatsApp providers that support this type of message.
  • When is_webview=true, the flow pauses until the WebView returns a callback or the time expires.
  • The input value is converted to URL query string parameters.
  • The callback response is saved in the variable specified in response_variable.

Current date and time

Gets the current date and time. Allows specifying a time zone to get the correct local time. Parameters:
NameTypeRequiredDescription
timezonestringNoDesired time zone in IANA format (e.g., “America/Guayaquil”, “UTC”).
Prompt Example:
“Before processing any time-dependent request (such as ‘good morning’ or appointments for ‘today’), call get_current_date_time to know the exact time.”
Arguments Example:
{
  "timezone": "America/Mexico_City"
}
Response: Returns a string with the formatted date and time, for example: "Monday, December 08, 2025 10:30 AM". Notes:
  • Has no visible side effects for the user.
  • It is purely informational for the model.

Day of the week

Calculates and returns the day of the week corresponding to a specific date provided. Parameters:
NameTypeRequiredDescription
datestringYesDate to query (ISO format or standard readable format, e.g., “2024-12-25”).
Prompt Example:
“If the user wants to schedule for a specific date, first verify what day of the week it is using get_weekday_of_a_date to ensure it is a business day.”
Arguments Example:
{
  "date": "2025-12-10"
}
Response: Returns the name of the day of the week, for example: "Wednesday". Notes:
  • Useful for validating appointments or schedules.