> ## Documentation Index
> Fetch the complete documentation index at: https://docs.gleap.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Custom actions

We know that the built in actions (Bug Reporting, Feature Requests, Ratings & Contact Us) might not be enough for certain use cases. For these situations we offer custom actions, which allow you to start any custom action by code.

## Configure a custom action

The first step with custom actions is to open the visual widget configurator and select **"Custom action"** as action type.

Now you need to **set a name for your custom action**. Choose any name you like (it's however important that this name matches the name you check in the next step).

<img src="https://mintcdn.com/gleap-1d346ffa/MCCg3Pia7IrMFFzd/images/CustomActions.png?fit=max&auto=format&n=MCCg3Pia7IrMFFzd&q=85&s=0705597bb0e054592ca54d1b552df5fa" alt="Setup custom actions in the Gleap dashboard." width="2874" height="1378" data-path="images/CustomActions.png" />

!\[Setup custom actions in the Gleap dashboard. ]\(./images/image (5).png)

## Custom action callback

Once you set a custom action in the Gleap dashboard, it will be called automatically on selection through the user. In order to perform custom code, simply implement our `CustomActionCallback` to receive the custom action events.

### Add & implement the Gleap delegate

The following code sample shows how to implement the `CustomActionCallback` protocol.

```java theme={null}
Gleap.getInstance().registerCustomAction(new CustomActionCallback() {
    @Override
    public void invoke(String customAction, String shareToken) {
        // For custom actions triggered within tickets, shareToken will be set to identify the ticket.
        if (customAction == "MAGIC_ACTION") {
            System.out.println("Magic action got called.");
        }
    }
});
```

<Info>
  The **custom action name** is defined by you in the visual widget configurator
  on the Gleap dashboard.
</Info>
