> For the complete documentation index, see [llms.txt](https://docs.adastacks.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.adastacks.com/stacks/scheduled-notifications.md).

# Scheduled Notifications

## Before You Start:

{% hint style="info" %}
Adastacks does not store your Adalo information. Your Adalo app ID, collection ID, and API key are erased upon the completion of each request.
{% endhint %}

{% hint style="info" %}
Your app **must** be published to the app stores in order for this stack to function. PWA's and web applications built in Adalo do not support native mobile push notifications.
{% endhint %}

## Video Tutorial

Updated video tutorial is coming soon!

## Walkthrough

**1.** Login to [Adastacks.com](https://adastacks.com) and navigate to your dashboard. (we'll need this for your API Key in a minute).

**2.** Open a new tab in your browser and open up your Adalo app in the Adalo editor

**3.** Once open, place a test button on a screen of your choosing

**4.** Under the "Click Actions" for the button, select **Custom Action**

**5.** Give your action a name, such as "Create Scheduled Notification"

**6.** Select the **Create** option from the dropdown below the Title field, then click **Next**

**7.** Copy the following URL and paste it into the Base URL field of the Custom Action

```markup
https://adastacks.app.n8n.cloud/webhook/notify?app_id=APPID&adalo_key=ADALOKEY&to_email=TOUSEREMAIL&title=TITLE&body=BODY&scheduled_datetime=DATETIME
```

**8.** Set the "Method" dropdown to **POST**

**9.** Add a query parameter called **Content-Type** with the value **application/json**

![](/files/-MaZ7zEwCloG89ck9zcf)

**10.** Add another query parameter called **api\_key** with your Adastacks API Key as the value

![](/files/-MaZwnVzXtyllh_lmNuA)

**11.** Add **Inputs** to hold your data for the new Custom Action (*You can name these whatever you like, but below are some suggestions*)

| Suggested Input Name   | Input Type | Suggested Input Value                                                                                                                                 |
| ---------------------- | ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
|                        |            |                                                                                                                                                       |
| **Adalo App ID**       | Text       | *For testing, you can make this anything you like*                                                                                                    |
| **Adalo API Key**      | Text       | *For testing, you can make this anything you like*                                                                                                    |
| **To User Email**      | Text       | *For testing, you can make this anything you like*                                                                                                    |
| **Notification Title** | Text       | *For testing, you can make this whatever you like*                                                                                                    |
| **Notification Body**  | Text       | *For testing, you can make this whatever you like*                                                                                                    |
| **Scheduled Datetime** | Text       | <p><strong>2022-12-19T23:24:30Z</strong> </p><p><em>Note that the date formatting when sending in the custom action should be No Formatting.</em></p> |

**12.** Replace the **capitalized text** in the URL with the **Inputs** you just made using the **Magic Text** button in the top right of the URL field.

![](/files/LlqtmuG7qs1wJrRAp8QZ)

**13.** Run the test request. (See the success screenshot below)

{% hint style="info" %}
Even test actions that fail return a "Test Successful" message so be sure to click **Show Full Response** to ensure the action succeeded. This is by design so that you can still save the action and return to continue setting it up later if you wish.
{% endhint %}

![](/files/-MUP2sFEgMiG5gFlDGuP)

**14.** Save the Custom Action and add it where you need it throughout your app. See below for an example custom action setup:

![](/files/lfxHNAfjbowbgf6vjZxV)

**15**.  IMPORTANT! Don't forget to format the scheduled date to No Formatting by clicking the pencil icon. If you fail to do this, the notifications will not be sent.

![](/files/BrHvCtMgD7SdYALSn8l6)
