Adalo development

How to set up a custom action in Adalo

Short answer

A custom action in Adalo sends one HTTP request to an external API when a user triggers it. Create it under Settings → Custom Actions (or from the action list on a component), choose the method and URL, add authentication headers, build the body with magic text, then test it, the properties Adalo finds in the response become outputs you can use on the next screen.

Custom actions are how an Adalo app does something outside itself: charge a card, send an email, create a record in another system, look up an address. They are simple once you know which parts Adalo is strict about.

Create the action

Add a Custom Action and name it after what it does, "Create Shipment", not "API 1".

  1. 1.GET to read data.
  2. 2.POST to create a record.
  3. 3.PUT or PATCH to update a record.
  4. 4.DELETE to remove a record.
  5. 5.Paste the full endpoint URL for the request.

Add headers

Most APIs need two headers, and getting the format wrong is the single most common cause of a 401.

  • Content-Type: application/json.
  • Authorization, copied exactly from the API docs.
  • Include the word Bearer and its trailing space if the API requires it.

Build the body with magic text

Add one body parameter per value the API expects, then fill each with Magic Text.

  • Logged-in User's email for account-level values.
  • The current record's ID for anything tied to that record.
  • Form input values for anything the user just typed.
  • Key names must match the API exactly: amount_cents and amountCents are different keys.

Test it and capture the outputs

Run the test with realistic values. Adalo reads the response and offers top-level properties as outputs.

  • Outputs might include a tracking number, a new record ID, or a status.
  • Outputs are only available to actions later in the same chain.
  • Plan the action order around which step needs which output.

Handle the failure path

Adalo action chains continue optimistically, so a failed request can pass silently.

  • Show a visible error state or a "something went wrong" screen.
  • Silent failure is how users end up tapping a button four times.
  • Disable the button while the action runs to avoid duplicate charges.

Common mistakes and how to diagnose them

401 Unauthorized in the test.

Likely cause:
Header name, capitalisation or the "Bearer " prefix is wrong.
Fix:
Copy the header verbatim from the API docs and retest with the same key in an API client to confirm the key itself is valid.

400 Bad Request.

Likely cause:
A body key name or type does not match, often a number sent as text.
Fix:
Compare your body value by value with a request that works outside Adalo.

No outputs offered after a successful test.

Likely cause:
The useful values are nested inside another object in the response.
Fix:
Have the API return them at the top level, or add a thin wrapper endpoint that flattens the response.

The action fires but the user navigates away first.

Likely cause:
A "Link to" action placed before the custom action in the chain.
Fix:
Reorder so navigation is always the last action.

Real example: creating an invoice from an Adalo app

A B2B ordering app needed a real invoice in the client's accounting system whenever an order was confirmed. The chain on the Confirm button ran: Create Order (Adalo) → custom action POST /invoices with the order ID and total → Update Order with the returned invoice_number → Link to Confirmation.

The whole thing worked once the invoice number was returned at the top level of the response, so Adalo exposed it as an output for the update step.

When you need an Adalo expert

Plenty of Adalo issues are straightforward to fix yourself with the steps above. It usually pays to bring in an experienced Adalo developer when the problem sits deeper in the build:

  • The API needs OAuth, a signature, or a token that must be refreshed before each call.
  • A single user action needs several chained API calls with error handling between them.
  • Payments, subscriptions or anything where a duplicate request costs real money.
  • The response must be transformed before Adalo can use it.

Related guides

Frequently asked questions

Where do I find custom actions in Adalo?

Under the app's Settings → Custom Actions, or by adding a "Custom Action" step to any component's action list.

Can a custom action write to an Adalo collection?

Not directly. Capture its output and follow it with an Update or Create action in the same chain.

Why is my magic text empty in the request body?

The value is not available on that screen, usually a record that was never passed in from the previous screen.

Can I see what the API actually returned?

The test panel shows the raw response. In a live app, log the request on the API side, since Adalo does not keep a request history.

Can custom actions run on a schedule?

No. Trigger scheduled work from your own backend and let Adalo read the result.

Webnux Tools is an independent product by Webnux Ltd. It is not affiliated with, endorsed by, or sponsored by Adalo, Inc. Adalo is a trademark of Adalo, Inc.

Need this built in your Adalo app?

Work with Ali