# Custom actions

Batch Actions is a module allowing you to register remotely-configurable runnable code to the SDK, when simple deeplinks wouldn't be enough. They can be triggered at any time by the SDK, allowing you to focus on the action code rather than when to trigger it.

Batch comes with builtin actions (deeplinking, user data edition, etc...)

### Registering an action

An action has two components:

* An identifier (case-unsensitive string), which will allow you to reference this action
  * While the identifier string is up to you, it cannot start with "batch.": these identifiers are reserved for built-in actions.
* An implementation block

Registering them is easy, but should be done using native code so that Batch can use them even if Flutter isn't loaded.\
See our native documentations for more info:

* [Android](/developer/sdk/android/advanced/custom-actions.md)
* [iOS](/developer/sdk/ios/advanced/custom-actions.md)


---

# 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://doc.batch.com/developer/sdk/flutter/advanced/custom-actions.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.
