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

# Walkie-Talkie Signals

> Send instant signals from your app to Mailofly to wake up your automations.

# Walkie-Talkie Signals

Picture a walkie-talkie connecting your app directly to Mailofly.

Whenever something exciting happens in your app—like a user creating an account or paying for a subscription—your app pushes the button and shouts into the walkie-talkie:

> *"Over here Mailofly! Sam just upgraded to the Pro plan!"*

Mailofly hears the shout immediately, checks which automations are listening for that signal, and sets them in motion!

***

## Anatomy of a Signal

Every walkie-talkie shout contains two super simple parts:

1. **The Signal Name**: A clear name describing what just happened (like `user.signup` or `order.placed`).
2. **The Goodie Backpack (`payload`)**: A little backpack full of extra details traveling along with the shout—like the user's first name, their plan, or their order total!

Here is what a shout looks like in code:

```json theme={null}
{
  "event": "user.signup",
  "email": "sam@example.com",
  "payload": {
    "first_name": "Sam",
    "favorite_color": "purple",
    "plan": "starter"
  }
}
```

***

## Unpacking the Goodie Backpack in Your Emails

Because your signal brought a backpack of data with it, you can pull those exact words out and place them directly into your email templates using magic tags:

> *"Hi `{{payload.first_name}}`, welcome aboard! We noticed your favorite color is `{{payload.favorite_color}}`."*

You can also use these goodies inside **Conditions** to make smart choices, like:

* *"If `payload.plan == 'starter'`, offer them a discount on Pro!"*

***

## How to Shout from Your Code

Sending a signal to Mailofly only takes 4 lines of code:

```typescript theme={null}
import { Mailofly } from "@mailofly/node";

const mailofly = new Mailofly("mf_live_xxxxxxxx");

// Shout into the walkie-talkie!
await mailofly.events.send({
  event: "user.signup",
  email: "sam@example.com",
  payload: {
    first_name: "Sam",
    plan: "starter"
  }
});
```

***

## Fun Signal Ideas to Play With

| Signal Name | What Just Happened | Great Automation Idea |
| - | - | - |
| `user.signup` | Brand new friend created an account | Send a cheerful 3-day welcome series |
| `order.completed` | Customer bought some goodies | Send a digital receipt + high-five |
| `cart.abandoned` | Left items in cart for 2 hours | Send a gentle reminder with a special perk |
| `streak.achieved` | Logged in 7 days in a row! | Send a celebratory badge email |

***

## Up Next

* [Catch signals with The Doorbell Button (Trigger)](trigger)
* [Inspect backpack items with The Yes/No Quiz Fork (Condition)](condition)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.