# Send Push Messages

## Send Settings

When all preparations are complete, click the `Send Settings` button in the upper right corner of the screen to configure the necessary settings for sending messages.

![Send settings button](/files/0YpA99WReKlaYLoIIl8a)

![Send settings detail screen](/files/cD7Wdiatpz3W7zmX9q1Y)

Before sending, you can confirm the number of users in the cohort set as the target one more time.

Select the appropriate send type for your message, and configure customer fatigue management to send messages to users.

## Step 1. Select Send Type

Hackle provides three send types. Select the send type based on the nature of your message.

| Send Type           | Description                                                                                                                              |
| ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| Schedule-based Send | Sends the message at the desired date and time.                                                                                          |
| Event-based Send    | Sends the message when a user performs a specific action. Based on the user's behavioral data.                                           |
| API-based Send      | Sends the message based on API content you configure directly. Sent at the point when the internal server requests message transmission. |

### 1-1. Schedule-based Send

#### Immediate Send

Sends a push message immediately to cohort users.

This is suitable for urgent announcements or updates about an ongoing event.

After configuring the send settings, it may take a few minutes for the message to actually reach users.

![Send immediately](/files/yevlZJBHMU1XHXIQyGTb)

* Rate Limit
  * You can set the maximum number of messages to be sent at once per minute to prevent service traffic overload.
  * Note that setting the number of messages per minute too low may delay message delivery.

#### Scheduled Send

Schedule messages to be sent to cohort users at a desired time. You can specify a timezone.

It may take a few minutes for the message to actually reach users once the scheduled time arrives.

![Send at scheduled time](/files/iIFeWTOn5hu5INquloZS)

#### Recurring Send

Periodically and repeatedly sends the same message to cohort users. You can set up complex schedules, and the next send date is automatically calculated and displayed whenever conditions change.

It may take a few minutes for the message to actually reach users once the scheduled time arrives.

![Send recurring](/files/J83czcChBW8ttQefnUYe)

* Send Frequency
  * Daily: You can send messages daily or every few days.
  * Weekly: You can send messages on specific days weekly, such as every Tuesday or every other week on Tuesday and Thursday.
    * Example: If today is Wednesday and you set sends for every 2 weeks on Tuesday and Thursday, this Thursday will send, next week's Tuesday and Thursday will not send, and the week after next's Tuesday and Thursday will send.
  * Monthly: You can send messages on a specific date monthly, such as on the 5th of every month or every 2 months on the 5th.
* Campaign Period
  * Start: You can set a start date and time for sending.
  * End
    * No End: You can choose not to set an end date. In this case, you can end the campaign manually.
    * Until Specific Date: You can specify the desired end date.
    * Until Specific Count: Automatically ends after reaching the maximum number of sends.

### 1-2. Event-based Send

Sends messages triggered by a specific event occurrence. You can create campaigns tailored to the customer journey.

It may take a few minutes for the message to reach users after an event occurs.

![Send event-based](/files/ZfTiFqEH6A6CZ0UjreeV)

* Trigger Event
  * You can select the desired event.
  * You can also add property filters or set multiple events with OR conditions.
* Wait Time
  * You can send the push message immediately after the event occurs or after waiting for a desired amount of time.\
    Example: Send "Check the items in your cart!" message 3 days after \[add\_to\_cart] occurs
  * If a user triggers a specific event during the wait time, the message can be cancelled.\
    Example: Send "We have a coupon for your first purchase!" message to users who haven't purchased yet 3 hours after \[sign\_up] occurs. In this case, if the user triggers \[purchase] within the wait time (3 hours), the message will not be sent.
* Send Period
  * Start: You can set a start date and time for sending.
  * End
    * No End: You can choose not to set an end date. In this case, you can end the campaign manually.
    * Until Specific Date: You can specify the desired end date.
* Do Not Disturb Hours
  * Messages will not be sent during the configured time period. For Promotional Messages, nighttime sending (9PM - 8AM) requires separate 'nighttime subscription consent'.
  * You can separately configure whether to resend messages that were not sent during the Do Not Disturb Hours.

### 1-3. API-based Send

Through API-based sending, you can maximize user push open rates by sending personalized messages at the most appropriate time.

You can send messages at the point when the internal server requests message transmission, and this can be used for automated message sending when information in the internal server changes.

![Send API-based](/files/N2RoTYVQdA3UZJargw9W)

{% hint style="warning" %}
Look up the API key and make sure to include it in the header when calling the API.
{% endhint %}

The Hackle Dashboard provides code snippets for API-based sends.

## Step 2. Customer Fatigue Management

Excessive push notifications can become a burden and nuisance for customers, and can be a cause of service churn. If you are sending multiple push messages, you can use customer fatigue management to set the number and frequency of messages sent to specific customers within a given period.

![](/files/EclTUb2jqol4DhcobN6D)

#### Duplicate Send

* By default, the same campaign is sent only once to the same user.
* If you want to send duplicate messages, you can set the period before resending after the initial send in minutes, hours, days, weeks, or months to minimize negative customer experience.

#### Frequency Capping

* You can limit the number of push messages an individual user can receive during a certain period. *(\*Based on push send start time)*
* The total Frequency Capping can be set at the workspace level, and you can choose whether to apply the limit per push message campaign.
* You can configure this in `Push Settings` on the Push Message page in the Hackle Dashboard.

![](/files/lu2NzOUvk7qetLC9iZQz)

* Click the `Push Settings` button to set the Frequency Capping in minutes, hours, days, weeks, or months.
* If no value is set, no Frequency Capping is applied. When Frequency Capping is set, the same settings apply to all push messages with Frequency Capping configured within the workspace.
* You can check the details in the [Frequency Capping](/en/crm-marketing/push-message-guide/send/frequency-capping.md) document.

## Step 3. Send

Campaign statistics are displayed once the send is scheduled.

![](/files/LZuGIQZUzWj0TRSZ9Pok)

To cancel a scheduled send, click the deactivate button to make edits.

To stop a campaign, click the End button to end the campaign.

## Step 4. Send Complete

Once message sending is complete at the scheduled time, the campaign status automatically changes.

You can also check the actual collected statistics in the campaign statistics section. You can quickly view the number of recipient devices, sends, and send conversion rate, and clicking the Detailed Analysis button allows you to perform deeper campaign analysis.

For details, see the [Measuring Push Message Campaign Performance](/en/crm-marketing/push-message-guide/analyze-push-message.md) guide.


---

# 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://docs.hackle.io/en/crm-marketing/push-message-guide/send.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.
