The celebration infrastructure layer for software products

Turn your users' milestones into meaningful experiences.

Add birthday, anniversary, and milestone celebrations in your product without building the scheduling, personalisation, timezone logic, or delivery stack yourself.

Connect your existing user data. Configure the celebration experience once. PeopleWisher handles personalization, scheduling and delivery.

API·Database Sync·Private Connector

celebrate.js
await peoplewisher.celebrate({ user_id: "usr_8821", event: "birthday", });
That's it.
Template selection
Personalization
Scheduling
Timezones
Channel delivery
Delivery tracking
await peoplewisher.celebrate({ user_id: "usr_8821", event: "birthday", channels: ["email", "whatsapp"], template: "birthday_vip", send_at: "09:00", });

Built for Saas, Websites and products in

FintechHR PlatformsE-commerce HealthcareEdTechCRMsCommunities
The product model

Everything you'd need,already built.

Skip months of engineering. PeopleWisher gives you a complete celebration engine out of the box.

Configure the experience once in PeopleWisher.

Your application simply tells us what happened. API requests use your saved defaults automatically, advanced users can override any setting per request.

Templates
Personalization
Multichannel delivery
Delivery timing
Timezone intelligence
Scheduling rules
Reports & Analytics
Branding & Celebration graphics

Configured once in the PeopleWisher dashboard · applied automatically to every event

Request → experience
Developer sends the event
A single call, like celebrate(user_id, event) no copy, no campaign logic.
PeopleWisher applies the template
Pulls the configured template for this milestone and audience.
Applies personalization
Fills in name, tenure, milestone details and other dynamic tokens.
Determines timing
Resolves send time against the recipient's timezone and your rules.
Selects delivery channels
Routes to email, SMS or WhatsApp per your configuration.
Delivers and reports status
Fires a webhook with delivery status your systems can act on.
Integration options

Bring your data. We'll handle the celebration.

PeopleWisher works with the way your product already stores user data, pick the model that fits your architecture.

Your product
Where user & milestone data lives
Connection
APIDatabase syncPrivate connector
PeopleWisher
PeopleMilestonesPersonalizationTemplatesScheduling
Delivery
Email · SMS · WhatsAppMore channels soon

Push data through the API

Your application sends users, milestone dates and events directly to PeopleWisher.

Best for startups, SaaS products and API-first applications
Your app PeopleWisher API Celebration engine Delivery
sync.js
await peoplewisher.contacts.upsert({ id: "usr_8821", first_name:"Amaka", email: "[email protected]", birthday: "1996-04-12", timezone: "Africa/Lagos", }); await peoplewisher.celebrate({ user_id: "usr_8821", event: "birthday", });

Connect your existing database

Already have thousands or millions of users? Don't rebuild your data pipeline. Connect PeopleWisher to the relevant database, map your fields once, and let PeopleWisher monitor the dates and data your celebrations need.

Best for products with an existing user database
Read-only access
Encrypted connection
Scoped to mapped fields only
Access can be revoked anytime
users→ PeopleWisher field
idPerson ID
first_nameFirst name
emailEmail
phonePhone
birthdayBirthday
timezoneTimezone

Keep your database behind your infrastructure

Run the PeopleWisher connector inside your own infrastructure. It connects to your database locally and securely exposes only the mapped data PeopleWisher needs — your data never has to sit in a third-party connection string.

Best for enterprise, fintech, healthcare and security-conscious teams
Runs inside your network
Outbound HTTPS only
Only mapped fields exposed
Revocable at any time
Your infrastructure
Database Connector
Secure HTTPS · outbound only
PeopleWisher
Engineering cost

Stop rebuilding relationship infrastructure.

Every product eventually needs this. Most engineering teams waste time building and planing maintenance.

Without PeopleWisher
  • Cron jobs to check dates every day
  • Date tracking and storage
  • Timezone and DST calculations
  • A template system
  • Personalization logic
  • Scheduling and retry handling
  • Email, SMS and WhatsApp delivery
  • Delivery tracking and reporting
  • Milestone automation, maintained forever
Your engineering team owns and maintains all of this.
With PeopleWisher
  • One integration - API, database sync or private connector
  • Scheduling, timezones and retries handled for you
  • Templates and personalization configured once
  • Email, SMS and WhatsApp delivery included
  • Delivery status reported back via webhook
One integration. Nothing to maintain.
Try it

What do you want to celebrate?

Any product event with a relationship worth strengthening can become a PeopleWisher milestone. Pick one to see how it flows through.

Birthday
celebrate(user_id, event: "birthday")
Amaka Johnson
Hi Amaka, wishing you a wonderful birthday from everyone on the team. Here's to another great year.
delivered · 8:00 AM local time
Built for your role

I'm a...

One integration. No notification infrastructure to maintain.

Who it's for

Any product with a relationship worth strengthening.

Not just birthdays — any moment your product already knows about.

Birthdays
A personal moment, delivered automatically on the right day.
Customer anniversaries
Mark the day someone became a customer, every year.
First purchase
Welcome new customers the moment they convert.
Loyalty milestones
Recognize repeat behavior with a timely message.
Subscription anniversaries
Celebrate a year, or five, of continued subscription.
Birthdays
Employee birthdays, surfaced to the team automatically.
Work anniversaries
Recognize tenure without a manual reminder in someone's calendar.
Promotions
Mark career milestones as they happen.
Service milestones
Five years, ten years — celebrated consistently, every time.
Membership anniversaries
Recognize how long someone has been part of the community.
Achievements
Celebrate badges, ranks and community contributions.
Participation milestones
Mark a hundredth post, a first event, a first contribution.
Account anniversaries
The day someone signed up, remembered every year.
Usage milestones
Thresholds crossed — projects created, tasks completed, hours logged.
Major achievements
In-product accomplishments worth acknowledging.
Personal accomplishments
Anything your product already tracks that matters to the user.
Used across
FintechHR platformsE-commerceEdTechHealthcareCRMs
Delivery channels

Reach users wherever they are.

Specify channels per contact or per event. PeopleWisher routes, retries, and reports on every message.

Email

HTML templates, custom SMTP, open tracking

Live
WhatsApp

WhatsApp Business API, rich media support

Live
SMS

Global delivery, custom sender ID

Live
Webhook

Trigger any external system via HTTP

Live
Push notifications

Mobile push, in your app

Coming soon
In-app

Render celebrations inside your own UI

Coming soon
Team channels

Announcements for internal team tools

On the roadmap
More

Additional channels under evaluation

On the roadmap
Data architecture

Built to work with your data architecture.

Three ways to connect, so your team never has to choose between shipping this and keeping control of your data.

API-first

You send exactly what you want stored, when you want it stored. No standing connection to your systems.

Read-only database connection

A scoped, read-only connection to the fields you map — nothing else is visible to PeopleWisher.

Private connector

Runs inside your own infrastructure and only exposes mapped fields over outbound HTTPS.

Scoped access
Only the fields you map are ever read.
Field mapping
Set once in the dashboard, adjustable anytime.
API key management
Separate test and live keys, revocable individually.
Environment separation
Sandbox traffic never touches real contacts.
Encryption in transit
All connections are encrypted end to end.
Auditability
Delivery and access events are logged and reportable.
Revocation
Disconnect a database or connector at any time.
Read-only by default
PeopleWisher never writes back to your database.
We describe capabilities we've actually implemented. We don't claim compliance certifications we don't hold — ask us directly about your specific requirements during onboarding.
FAQ

Developer questions answered

When you sync a contact, you pass their IANA timezone (e.g. Africa/Lagos). PeopleWisher schedules delivery at your configured time in that timezone — DST is handled automatically. You can override per contact or per event. No crons on your end.
Yes. You connect your WhatsApp Business API account so messages come from your brand's number. For SMS, you supply your sender ID — like ACME-CORP — and your preferred provider, or use PeopleWisher's built-in routing.
Yes. Test API keys (pw_test_...) route all messages to a sandbox — no real contacts are touched, no real messaging costs incurred. Webhooks fire as normal so you can test your full integration. Safe to run in CI.
No. Templates, personalization, timing and channels are configured once in the dashboard against each milestone type. Your application only needs to send user_id and event — everything else uses your saved defaults unless you explicitly override it.
Pricing is discussed during onboarding and structured around contact volume and delivery channels. A base fee covers the infrastructure — scheduling, templates, timezone logic, webhooks, email delivery. SMS and WhatsApp are charged per message. Contact us with your estimated volume for a quote.
PeopleWisher retries failed messages for transient errors. For permanent failures — invalid number, blocked — a message.failed webhook is fired with a reason code so you can handle it in your system.
Yes. Date-based celebrations run automatically every year once configured. You can also trigger a celebration via a direct API call — useful for events like account upgrades, first purchases, or subscription milestones that happen at unpredictable times.
Yes. POST /v1/contacts/batch accepts up to 1,000 contacts per request. For larger migrations, upload a CSV directly from the dashboard, or use database sync. Duplicate detection and upsert behaviour are configurable.
We're onboarding developers, startups and engineering teams directly so we can help set up field mapping, templates and delivery channels correctly the first time. Request access below and we'll be in touch within 48 hours to get you integrated.
API access · database sync · private connector

Your users already have important moments.
Start celebrating them.

Connect your data, configure your celebration experience once, and let PeopleWisher handle the rest.

Opens your email · [email protected] · We reply within 48 hours