# Pathway Action Nodes

## **Integration Nodes**

### **Webhook Node**

**Overview**

The Webhook Node is an action node used to perform HTTP requests to external APIs or services. It enables the agent to interact with external systems by sending or retrieving data, making it a key integration point within the flow.

**When to Use**

• When you need to fetch data from an external API.\
• When you need to send data to an external system.                                                                                • For integrations with third-party services (e.g., CRM, databases, internal APIs).\
• When dynamic, real-time data is required during the conversation.

**Features**

• Supports multiple HTTP methods:\
 • GET, POST, PUT, DELETE.\
• Fully configurable request setup:\
 • API URL.\
 • Headers.\
 • Query Parameters:\
 • Request Body.                                                                                                                                           • Authentication support:\
 • OAuth2 authentication.\
• Flexible request handling:\
 • Supports sending a request body even with GET requests (for APIs that require it).\
 • Timeout configuration to control request execution time.\
 • Retry mechanism with exponential backoff for handling failures.\
 • Execute synchronously or asynchronously (fire-and-forget).\
 • Conditional routing based on response results.                                                                                     • Response handling:\
 • Allows defining Response Data extraction.\
 • Extract specific values from the JSON response.\
 • Makes response data available for use in downstream nodes.\
• Built-in webhook/API testing before execution.

**Example Usage & How to Use**

Use case:\
Integrate the agent with external systems by calling APIs to send or retrieve real-time data during the conversation (e.g., fetching user details from a CRM).

How to use:

• Use the prompt to define what should be say while executing the webhook node (Optional).\
• Configure the API request by selecting the HTTP method (GET, POST, PUT, DELETE) and providing the request URL.\
• Add headers when needed (e.g., authentication tokens, content-type) and choose whether they are static, dynamic, or extracted from variables.\
• Define query parameters and body parameters to pass data to the API, using static values, extracted variables, or dynamic inputs.\
• Enable OAuth2 if the API requires authentication and select a valid connection (the system will inject the authorization token automatically).\
• Configure timeout to control how long the system waits for a response before failing the request.\
• Enable Response Data to extract specific values from the API response using JSONPath and make them available for downstream nodes.\
• Optionally enable Execute Async (Fire and Forget) if the request should run without waiting for a response (note: cannot be used together with Response Data).\
• Configure Exponential Backoff to automatically retry failed requests with increasing delays (set initial delay, number of retries, and multiplier).

<div align="left"><figure><img src="/files/j3bbAEOeXHpCol1sQT3d" alt=""><figcaption></figcaption></figure></div>

### **Client Tool Node**

**Overview**

The Client Tool Node is an action node that allows the agent (via the widget) to execute JavaScript functions on the hosting website. It works by defining a function signature that must be implemented on the client side. When the node is triggered, the agent calls this function and executes it directly within the website.

**When to Use**

• When you need to trigger frontend actions from the agent.\
• To interact with the hosting website UI or logic.                                                                                       • When integrating the agent with custom JavaScript functionality.\
• For actions that must happen on the client side.

**Features**

• Executes JavaScript functions on the client (browser).\
• Defines a contract between the agent and frontend through a callable function.\
• Supports configurable tool definitions:\
 • Tool Name.\
 • Function Description.\
 • Input Parameters.                                                                                                                                        • Generates a ready-to-use JavaScript snippet for frontend integration.\
• Allows seamless integration with the hosting application by implementing the generated function.                                                                                                                                                       • Enables real-time interaction between the agent and the frontend environment.

**Limitations**

• Supported only for widget-based calls.

**Example Usage & How to Use**

Use case:\
Execute frontend-side logic such as triggering client-side actions based on agent decisions.

How to use:\
• Define a Tool Name that represents the JavaScript function the frontend will implement.\
• Add a Description to explain what the function should do when called.                                                 • Configure the Parameters required by the function:\
 • Use Static values for fixed inputs.\
 • Use Extracted variables to pass data collected earlier in the flow.\
 • Use Dynamic values to pass real-time data from the conversation.

<figure><img src="/files/EyxcFbJrtvkBhSur8kZ9" alt=""><figcaption></figcaption></figure>

• Once ready, visit widget configuration to find the code snippet including that tool as a function.\
• Review the generated JavaScript snippet that the system provides.\
• Implement the function in your frontend using the same function name and expected parameters.

<figure><img src="/files/8kETA5DHNultkWUaUwYc" alt=""><figcaption></figcaption></figure>

## **Calendar Nodes**

### **Schedule Event Node**

**Overview**

The Schedule Event Node is an action node used to create and schedule events in a connected calendar (Google Calendar). It sends a calendar invite based on information collected during the conversation.

**When to Use**

• When the user wants to book a meeting or appointment.\
• For scheduling demos, or sessions.

**Limitations**

• Requires Google Calendar to be connected.

**Example Usage & How to Use**

Use case:\
Schedule a meeting or event based on user input, such as booking appointments.

How to use:\
• As a best practice add a Default Node before this node to collect and structure all required event data in a consistent format.                                                                                                                            • In the Default Node, define and extract the following variables:\
 • title → Event title.\
 • startDate → Date in YYYY-MM-DD format.\
 • startTime → Time in HH:MM:SS format.\
 • timeZone → IANA time zone format.\
 • duration → Event duration in minutes.\
 • guests → Comma-separated list of emails.\
 • description → Event description.                                                                                                             • In the Schedule Event Node, select the appropriate calendar from the connected integrations.         • • For each parameter, choose the mode:\
 • Extracted Variable (recommended): Map values from the Default Node.\
 • Static: Use fixed predefined values when needed.\
 • Dynamic: Provide instructions for runtime extraction from the conversation.                                    • Use the result of the action (stored in scheduleEventResult) in downstream nodes if needed (e.g., confirmation messages or follow-up actions).&#x20;

<figure><img src="/files/XyEYEqac7sSalVETVZUG" alt=""><figcaption></figcaption></figure>

### **Availability Check Node**

**Overview**

The Availability Check Node is an action node used to check calendar availability for a specific date in the connected Google Calendar.

**When to Use**

• Before scheduling events.\
• When suggesting available time slots to users.\
• To avoid scheduling conflicts.

**Limitations**

• Requires Google Calendar to be connected.

**Example Usage & How to Use**

Use case:\
Check whether a specific date is available in a connected calendar before scheduling an event (e.g., verifying if a day has free slots before booking a meeting).

How to use:\
• As a best practice add a Default Node before this node to collect and structure all required event data in a consistent format.                                                                                                                            • In the Default Node, define and extract the following variables:\
 • date → Date in YYYY-MM-DD format.\
 • timeZone → Time zone in IANA format.                                                                                                               • In the Availability Check Node, select the appropriate calendar from the connected integrations.        • For each parameter, choose the mode:\
 • Extracted Variable (recommended): Map values from the Default Node.\
 • Static: Use fixed values if the date or time zone is predefined.\
 • Dynamic: Allow the agent to determine values at runtime from the conversation.                             • Use the result of the action (stored in availabilityCheckResult) in downstream if needed (e.g., confirmation messages or follow-up actions).

<figure><img src="/files/32vNkvJrF2VIcu0TiGq0" alt=""><figcaption></figcaption></figure>

### Cancel Event Node

**Overview**

The Cancel Event Node is an action node used to cancel an existing calendar event in the connected Google Calendar.

**When to Use**

• When the user requests to cancel a scheduled meeting or appointment.\
• In flows that handle booking management or rescheduling.

**Limitations**

• Requires Google Calendar to be connected.

**Example Usage & How to Use**

Use case:\
Cancel an existing calendar event based on user-provided details (e.g., a user requests to cancel a scheduled meeting or appointment).

How to use:

• As a best practice add a Default Node before this node to collect and structure all required event data in a consistent format.                                                                                                                             • In the Default Node, define and extract the following variables:\
 • date → Event date in YYYY-MM-DD format.\
 • time → Event time in HH:MM:SS format.\
 • duration → Event duration in minutes.\
 • timeZone → Time zone in IANA format.                                                                                                   • In the Cancel Event Node, select the appropriate calendar from the connected integrations.             • For each parameter, choose the mode:\
 • Extracted Variable (recommended): Map values from the Default Node.\
 • Static: Use fixed values when the event details are predefined.\
 • Dynamic: Allow the agent to determine values at runtime from the conversation.                             • Use the result of the action (stored in cancelEventResult) in downstream nodes if needed (e.g., confirmation messages or follow-up actions).&#x20;

<figure><img src="/files/r9npVFeAC4r2JENInhS9" alt=""><figcaption></figcaption></figure>

## **Messaging Nodes**

### **Send SMS Node**

**Overview**

The Send SMS Node is an action node used to send SMS messages to a user’s phone. It uses Twilio as the SMS provider and requires prior configuration of a phone number before it can be used.

**When to Use**

• When you need to send notifications via SMS.\
• For sending confirmations (e.g., bookings, OTPs).\
• When users prefer communication via mobile messages.\
• To follow up with users outside the conversation.

**Limitations**

• Requires Twilio configuration before use.\
• Valid phone numbers must be provided.

**Example Usage & How to Use**

Use case:\
Send an SMS notification to a user (e.g., appointment confirmation).

How to use:\
• As a best practice add a Default Node before this node to collect and structure all required SMS data in a consistent format.                                                                                                                             • In the Default Node, define and extract the following variables:\
 • phoneNumber → Recipient phone number in international format (e.g., +1234567890)\
 • message → The SMS content to be sent.                                                                                              • In the Send SMS Node, select the provider (e.g., Twilio).                                                                         • Select the outbound number that will be used to send the SMS.                                                            • For each parameter, choose the mode:\
 • Extracted Variable (recommended): Map values from the Default Node\
 • Static: Use fixed values if the phone number or message is predefined\
 • Dynamic: Allow the agent to determine values at runtime from the conversation.                             • Use the result of the action (stored in sendSmsResult) in downstream if needed (e.g., confirmation messages or follow-up actions).

<figure><img src="/files/14gWjwqxbrb9UxUdrJiN" alt=""><figcaption></figcaption></figure>

### **Send WhatsApp Message Node**

**Overview**

The Send WhatsApp Message Node is an action node used to send WhatsApp messages to users using pre-approved message templates via Meta (WhatsApp Business API). It allows sending structured and personalized messages during the agent flow.

**When to Use**

• When you need to send messages via WhatsApp.\
• For notifications, confirmations, and reminders.

**Limitations**

• Requires Meta Business account integration.\
• Only works with approved WhatsApp templates.

**Example Usage & How to Use**

Use case:\
Send a WhatsApp message to a user using a predefined template (e.g., order updates).

How to use:\
• As a best practice add a Default Node before this node to collect and structure all required WhatsApp message data in a consistent format.                                                                                         • In the Default Node, define and extract the following variables:\
 • to → Recipient phone number in international format (e.g., +1234567890)\
 • templateParams → Values required for the selected WhatsApp template (if applicable).                 • In the Send WhatsApp Message Node, select phone number.                                                                • Choose the appropriate WhatsApp message template from the available templates.                           • For each parameter, choose the mode:\
 • Extracted Variable (recommended): Map values from the Default Node\
 • Static: Use a fixed phone number if predefined\
 • Dynamic: Allow the agent to determine values at runtime from the conversation.                             • Use the result of the action (stored in sendWhatsappMessageResult) in downstream nodes if needed (e.g., confirmation messages or follow-up actions)

<figure><img src="/files/mUXijtnYHdi8qpukWJlq" alt=""><figcaption></figcaption></figure>

### **Send Email Node**

**Overview**

The Send Email Node is an action node used to send emails to users during the agent’s conversation flow. It requires prior email configuration.

**When to Use**

• When you need to send information via email.\
• For sending confirmations, reports, or summaries.\
• When users request to receive details in their inbox.

**Limitations**

• Requires email configuration before use.

**Example Usage & How to Use**

Use case:\
Send an email to one or more recipients (e.g., follow-ups).

How to use:\
• As a best practice add a Default Node before this node to collect and structure all required email data in a consistent format.                                                                                                                            • In the Default Node, define and extract the following variables:\
 • title → Email subject/title\
 • recipients → Comma-separated list of email addresses (e.g., <user@example.com>,             <team@company.com>)\
 • body → Email content/body.                                                                                                                   • In the Send Email Node, select the appropriate email provider from the configured integrations.       • For each parameter, choose the mode:\
 • Extracted Variable (recommended): Map values from the Default Node.\
 • Static: Use fixed values if the email content is predefined.\
 • Dynamic: Allow the agent to generate values at runtime from the conversation.                                  • Use the result of the action (stored in sendEmailResult) in downstream nodes if needed (e.g., confirmation messages or follow-up actions).&#x20;

<figure><img src="/files/wnC5R11PIJ00lSZvuSsv" alt=""><figcaption></figcaption></figure>

## **Utility Nodes**

### **Decision Node**

**Overview**

The Decision Node is an action node that automatically selects the next edge in the flow without requiring any user input. It is designed to execute logic instantly—such as routing, evaluating conditions, or extracting variables—without interrupting the conversation.

**When to Use**

• When you need to route between multiple paths based on existing context.\
• For logic-based decisions that should run immediately.\
• When you want to extract variables without waiting for user input.                                                        • At the start of a flow (e.g., after agent transfer) to determine the correct path.

**Example Usage & How to Use**

Use case:\
Seamlessly transfer a conversation between agents (e.g., from a Support Agent to a Billing Agent) while preserving context, then automatically decide the next step without requiring the user to repeat information.

How to use:

• Agent A transfers a call to Agent B.                                                                                                            • At the start of Agent B’s flow:\
 • A Decision Node is used to determine the next step\
 • It evaluates previously collected data\
 • Routes the flow automatically without asking the user

<figure><img src="/files/z51Fnw6VFkeNFQd0gqNT" alt=""><figcaption></figcaption></figure>

### **Call Reschedule Node**

**Overview**

The Call Reschedule Node is an action node responsible for rescheduling a VoIP call based on user input. It allows the agent to reschedule the call using information provided by the user during the conversation.

**When to Use**

• When a user requests to reschedule a call.                                                                                                           • When adjusting call timing based on user availability.

**Limitations**

• Requires an existing VoIP call to reschedule.                                                                                                            • Supported only for VoIP calls.

**Example Usage & How to Use**

Use case:\
Reschedule an existing call when the user requests a different time (e.g., a user says *“Can we move my call to tomorrow at 3 PM?”* and the system schedule a call accordingly).

How to use:\
• As a best practice, add a Default Node before this node to collect and structure all required call rescheduling data in a consistent format.                                                                                                     • In the Default Node, define and extract the following variables:\
 • date → Date in YYYY-MM-DD format\
 • time → Time in HH:MM:SS format (24-hour)\
 • timeZone → Time zone in IANA format.                                                                                                 • In the Call Reschedule Node, configure the required parameters (date, time, time zone).                     • For each parameter, choose the mode:\
 • Extracted Variable (recommended): Map values from the Default Node.\
 • Static: Use fixed values if the email content is predefined.\
 • Dynamic: Allow the agent to generate values at runtime from the conversation.                                                                                                  • Optionally enable “Remember Call Context” to preserve conversation history and extracted variables for the rescheduled call.                                                                                                                 • Use the result of the action (stored in callRescheduleResult) in downstream nodes if needed (e.g., confirmation messages or follow-up actions).

<figure><img src="/files/3GQ6tx0mj2hCfUax3Y0j" alt=""><figcaption></figcaption></figure>

### **Trigger Call Node**

**Overview**

The Trigger Call Node is an action node used to allow a user to trigger or schedule an outbound VoIP call through the conversation. It enables making a call to a specific destination number with provided context while the current agent flow is still executing.

**When to Use**

• When you need to initiate an outbound call from an agent to a specific number.

**Limitations**

• Requires VoIP configuration and valid phone number.

**Example Usage & How to Use**

Use case:\
Trigger a follow-up or outbound call to a user (e.g., after completing a support request, the system initiates a new call from another agent to continue the conversation or handle a different task such as sales or onboarding).

How to use:\
• As a best practice, add a Default Node before this node to collect and structure all required call data in a consistent format.                                                                                                                            • In the Default Node, define and extract the following variables:\
 • toNumber → Recipient phone number in international format (e.g., +123456789)\
 • dateAndTime → Scheduled date and time in ISO format (optional).\
 • timeZone → Time zone in IANA format (optional).\
 • callContext → Context or purpose of the call (optional).                                                                      • In the Trigger Call Node, select the target Agent that will handle the new call.                                      • Configure the parameters:\
 • To Number: Required field for the recipient.\
 • Schedule At (Optional): Define when the call should be triggered.\
 • Call Context (Optional): Provide additional context to guide the receiving agent.                              • For each parameter, choose the mode:\
 • Extracted Variable (recommended): Map values from the Default Node.\
 • Static: Use fixed values if known in advance.\
 • Dynamic: Allow the agent to determine values at runtime from the conversation.                             • Use the result of the action (stored in triggerCallResult) in downstream nodes if needed (e.g., confirmation messages or follow-up actions).

<figure><img src="/files/e8dAqouFxnhobALdcXdQ" alt=""><figcaption></figcaption></figure>

### **Schedule Trigger Node**

**Overview**

The Schedule Trigger Node is an action node used exclusively for text-based calls (such as WhatsApp text calls). In text flows, this node triggers and executes the connected downstream nodes at a specified time interval, allowing for repeated and automated actions.

**When to Use**

• When you need to repeat an action periodically in a text-based flow.                                                                                                          • To send recurring messages (e.g., reminders, updates).                                                                                                         • When automating interval-based communication in WhatsApp or chat.

**Limitations**

• Supported only for text-based calls.

**Example Usage & How to Use**

Use case:\
&#x20;Send a WhatsApp message every 60 minutes to a user.

How to use:

• Configure the Interval (minutes) to control how often the trigger runs.                                                                                                          • Optionally set Max Triggers to limit how many times the action executes.                                                                                                         • Use this node at the start of a flow to repeatedly initiate downstream actions without user interaction.                                                                                                                                                       • The trigger automatically executes connected nodes based on the defined schedule and conditions.

<div align="left"><figure><img src="/files/htco5n1MY43OTgvP9Afk" alt=""><figcaption></figcaption></figure></div>

<figure><img src="/files/63NVhJGYIg9QePLFGgdq" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://dataqueue.gitbook.io/voicehub-docs/agent-design-and-usage/pathway-action-nodes.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
