Birthday or anniversary
When to use it
Section titled “When to use it”- You keep a birthday, a joining date or another yearly date on each profile.
- A personal message on the day fits your relationship with people.
Where the data comes from
Section titled “Where the data comes from”| How | What |
|---|---|
| A form people fill in | A birthday question (month and day) on any form you already use. |
| A Google Sheet or Excel file, synced | Or a synced sheet or CSV with a birthday column. |
What it sets up
Section titled “What it sets up”| Kind | Name | What it does | Lands |
|---|---|---|---|
| Team | ‹Call team› | Calls people on their day. | Empty |
| Segment | birthday today | Everyone whose date falls on today's month and day, in your time zone. | Ready |
| Template | Happy birthday (email) | The birthday or anniversary email. | Ready |
| Template | Happy birthday (SMS) | The birthday or anniversary SMS. | Ready |
| Follow-up | Happy birthday | Every day at the send time, the message to everyone in today's segment. | Off |
The questions it asks
Section titled “The questions it asks”| # | Question | Default | Fills in |
|---|---|---|---|
| 1 | What should messages call your organisation? | none, must answer | org_name |
| 2 | Is this for birthdays or for an anniversary (like the date someone joined)? | birthday | occasion |
| 3 | Which trait holds the date? Year-less dates (month and day) work too. | birthday | date_trait |
| 4 | What time of day should it go out? 07:00 or later. The segment refreshes within about an hour after local midnight, and the date check uses the segment's time zone (a step condition would use UTC). | 08:00 | send_time |
| 5 | Send an SMS as well as the email? | No | send_sms |
| 6 | Should a team get a task to call each person? Which team? (leave empty for no calls) | empty: skipped | call_team |
Other settings
Section titled “Other settings”These have defaults. Change any that don’t fit.
| Setting | Default | Key |
|---|---|---|
| Sender address | ‹workspace default_sender› | email_from |
| Time zone ("today" starts at local midnight) | ‹workspace timezone› | timezone |
| Greeting when a first name is missing | friend | greeting_fallback |
Timings
Section titled “Timings”- Every day at 08:00 in ‹workspace timezone›, everyone whose birthday falls on today's month and day gets the message.
- Each person gets it at most once a year (a 300-day cooldown, as the calendar's own birthday journeys use). 29 February birthdays are celebrated on 1 March in other years.
Channels
Section titled “Channels”| Channel | Needed for | Before it can send |
|---|---|---|
| The birthday email | A verified sending domain for ‹workspace default_sender›. | |
| sms | The birthday SMS (optional) | An SMS provider, or Origamy managed SMS after business verification (KYC). |
What you need to do
Section titled “What you need to do”- Fill birthday on profiles. A form date question set to month and day only saves it without the year, plus birth_month and birth_day.
- Verify the sending domain; for SMS, connect a provider or finish business verification.
- Switch the follow-up on, and check the segment on a day you know someone has a birthday. A follow-up only runs once it's on, so test with a test person whose date is today.
- Don’t compare full dates. A rule like “date of birth before 1 November and after 30 September” compares the year too, so it matched nobody. “Same day of the year” ignores the year.
- Set the time zone on the condition. “Today” starts at midnight in that zone. The segment refreshes within about an hour after midnight, so send at 07:00 or later.
- Year-less dates work. A form date question set to month and day saves
MM-DD.
Copilot eval
Section titled “Copilot eval”The request used to test the copilot on this playbook (a live eval):
Send everyone a happy birthday email at 8am on their birthday, in Lagos time. The birthday is in the date_of_birth trait. Only once a year per person.
It passes when every piece is a valid draft and everything lands off, with at least: segment, workflow, message_template.
