Chatbot Management

Actions

Let the chatbot show buttons and forms, call a configured backend API, or check live Biteship courier rates.

Actions extend the chatbot beyond answering from the Knowledge Base. An enabled action can show a custom button, collect a form submission, call a backend API, or check live courier rates when the visitor’s request matches its purpose.

AI credit usage

An AI response uses the selected model’s credit rate. Call that rate C. Each configured action or Helpdesk handoff call that the agent invokes successfully uses another C credits:

Total turn credits = response C + (successful action calls × C)

For example, a response from a 2-credit model costs 2 credits without an action, 4 credits with one successful action, and 6 credits with two successful actions.

The action credit is reserved before the action runs and committed only when the action returns a successful result. If the action fails, its reservation is refunded. A successful AI response can still use its normal response credits when it explains that an action failed or could not run. If the account cannot reserve the additional credits, the action is not executed.

Configured actions from My actions and successful Helpdesk handoff calls receive the action charge. Knowledge Base searches do not. Configuring or testing an action from the dashboard does not use action credits.

For actions that render something interactive, invocation and visitor interaction are separate:

  • Show button uses action credits when the agent successfully shows the button. Opening the button link uses no additional credits.
  • Collect data uses action credits when the agent successfully shows a form or submits conversationally collected details. The later visitor interaction—submitting an already-rendered form to its webhook—uses no additional credits.

This policy applies in Playground and supported public web, Telegram, and WhatsApp conversations. Open Usage to review response, action, and attachment credits. Chat Logs group successful action charges with the user turn that invoked them.

Manage actions

Open Actions for the selected chatbot. My actions lists configured actions and their status. Select Add action or Action catalog to browse the available categories.

The catalog groups actions into Custom actions and Biteship cards. Every available action is visible as a chip on its category card. Open a category, then select an action in the drawer to configure it.

Every action includes:

  • Action Name — an internal name your team can recognize
  • When to Use — private instructions that help the AI decide when the action is relevant
  • Enabled — controls whether the chatbot can use the saved action

Write When to Use as a specific visitor intent. For example: “Use this when the visitor wants to contact our support team or continue the conversation outside chat.” Avoid broad wording such as “use when helpful,” which can cause unexpected triggers.

Show button

Use Show button for a clear call to action, such as Contact Us, Book a Demo, Open the Help Center, or Track an Order on an external page.

Configure:

  • Action Name
  • When to Use
  • Button label
  • Link

The button appears as an independent block in the conversation rather than inside the assistant’s text bubble.

Test a direct trigger message and a similar message that should receive only a normal answer. If the button appears too often, narrow When to Use.

Collect data

Use Collect data to gather structured responses and send valid values to your webhook. Choose a collection method for each action:

  • Collect from a form renders fields on the hosted page, chat bubble, and embedded chat. Telegram and WhatsApp cannot render this interface.
  • Collect conversationally lets the AI ask for missing fields in web chat, Telegram, and WhatsApp. It submits only after every required value is available.

Configure:

  • A visitor-facing form title and description when using a rendered form
  • Private When to Use instructions
  • Text, email, phone, number, textarea, select, or checkbox fields
  • Each field as required or explicitly optional
  • A submit button label for forms and a success or confirmation message
  • Allow multiple submissions
  • A public HTTPS webhook URL
  • Optional server-side webhook headers

Field values are validated against the saved action and sent to the webhook. Orkata does not store the submitted field values as Leads. It stores a receipt with status, count, and timestamps to track successful submissions.

After a successful form submission, the form is replaced by the complete success message for the current view. Conversational collection returns the configured confirmation in chat. When Allow multiple submissions is disabled, a conversational action can be submitted once per conversation.

Request only information you genuinely need. Your webhook should authenticate requests where appropriate, validate all values again, apply rate limits, and avoid returning secrets.

Call API

Use Call API when the chatbot needs to collect or infer inputs, call your backend from Orkata’s server, and use the JSON response. Common examples include order status, appointment availability, or a product lookup.

Supported methods are GET, POST, PUT, PATCH, and DELETE.

You can define text, email, phone, number, or boolean variables; mark variables required; and allow array values. Insert a variable into the URL, query parameters, headers, or JSON body with a token such as:

{{customer_email}}

The endpoint must be a public HTTPS URL. Enter sample values and select Test request before enabling the action. Keep API responses limited to the information the chatbot needs.

Check rates

Use Check rates when visitors need live Indonesian shipping prices. This is a dedicated Biteship integration, not a Call API action. The API key stays in the server’s BITESHIP_API_KEY environment variable and is never saved in the action configuration or shown to the chatbot.

Configure:

  • Private When to Use instructions
  • An optional default sender origin
  • The parcel and cargo couriers to compare, including AnterAja, JNE, SiCepat, TIKI, Ninja Xpress, Lion Parcel, J&T Express, ID Express, RPX, Wahana, Pos Indonesia, SAP Express, Paxel, and Sentral Cargo
  • Optional default package length, width, and height in centimeters

Check rates uses Biteship area IDs for precise Indonesian locations. Coordinate-only, on-demand couriers are not configurable in this action. Actual courier availability still depends on the selected route and the couriers enabled in the connected Biteship account.

Configured package dimensions are applied to every rate lookup without asking the visitor. Leave all three blank to request weight-only rates. The agent collects or infers the origin and destination, weight and declared value per item, and quantity from the conversation. It first resolves typed locations through Biteship. When a location is ambiguous, it asks the visitor to choose the exact area or provide a postal code, then retrieves rates after confirmation.

In Telegram, location questions and rate results remain normal chat messages. No web form or external HTTP action is required.

Test in Playground

For every enabled action, test:

  1. A direct request that should trigger it.
  2. A reworded request with the same intent.
  3. A nearby question that should remain a text response.
  4. Missing required input.
  5. Invalid input.
  6. A webhook or API failure.

The chatbot may first ask for missing required information. Custom UI such as buttons and forms appears as a separate block below the relevant assistant response.

Delete or disable an action

Disable an action to keep its configuration while making it unavailable in chat. Delete it when the action should be removed permanently. A deleted Call API action no longer sends traffic to the configured endpoint, a deleted Check rates action stops Biteship lookups, and a deleted button or form stops appearing.

Troubleshooting

The action does not trigger

Confirm that it is enabled and When to Use clearly matches the visitor’s intent. Test with a direct request before testing subtle wording.

Show button appears without the expected list or text

Action instructions determine when it is selected; they do not guarantee a separate generated list. Put necessary contact details in the Knowledge Base or response instructions, and use the button for one clear link.

A form cannot be submitted again

If multiple submissions are disabled, one successful submission prevents another for that form. If enabled, the success message remains visible for the current view and the form returns only after reload or reopen.

Call API fails

Confirm the endpoint is public HTTPS, tokens match defined variables, the JSON is valid, and your server accepts the configured method and headers. Use Test request with non-sensitive sample data.

Check rates cannot retrieve rates

Confirm BITESHIP_API_KEY is configured on the server, at least one courier is selected, and the origin and destination resolve to exact Indonesian areas. Add a five-digit postal code when Biteship returns multiple location matches.

Next step

Test action behavior in Playground, then review real triggers in Chat Logs.