Notifications

Create a notification schedule

Queues a message to go out to a set of tenants, leases, owners, or vendors at a future time. Nothing is sent now.

POST
https://api.portal.magicdoor.com/company-app/notifications/schedules

Authorization

Authorizationstringrequired
Bearer token — Send your API token in the Authorization header as Bearer <token>. Requests without a valid token are rejected with 401 Unauthorized.

Body

application/json

targetobjectrequired

Who to send to.

templateobjectrequired

What to send.

timestring · date-timerequired

When to send it. Must be in the future.

example: 2026-08-28T09:00:00

Response

200 · The schedule, with `status` set to `pending`.

idstring

The schedule.

sourceenum<string>

manual means someone set it up; system means MagicDoor created it itself, for example when onboarding finished.

systemmanual
targetobject

Who it will go to.

templateobject

What will be sent.

timestring · date-time

When it is due to go out.

statusenum<string>

pending means it has not run yet and can still be edited or deleted. skipped means MagicDoor decided not to send it.

pendingsentskippedfailed
sentstring · date-time

When it actually went out. Absent while pending.

failureReasonstring

Why it failed, when it did.

announcementIdstring

The announcement this schedule sends. Present on a schedule created by scheduling an announcement.

createdstring · date-time

When the schedule was set up.

400 · `time` is not in the future, `subject` is blank, neither `emailMessage` nor `textMessage` was given, or one of them uses placeholder syntax MagicDoor cannot parse.

401 · The access token is missing, expired, or not valid.

This will deliver messages to real people, later

Nothing goes out while you are making this call. At time, everyone the target matches gets the message in their MagicDoor chat, as an SMS, and by email, depending on which of textMessage and emailMessage you filled in. Delete the schedule before then to stop it.

A notification schedule is a message queued for a future date. When its time comes MagicDoor turns it into an announcement and sends it: textMessage is posted into each recipient's chat and sent as an SMS, and emailMessage is emailed to them under subject.

This is not the same thing as a chat notification setting. It is a one-off future send, not a preference.

target.type picks the kind of recipient and is written with a capital letter: Tenant, Lease, Owner, or Vendor. The rest of target narrows it down — a Tenant target can list ids outright, or leave them out and use the flags to catch everyone who owes money, has no payment method saved, or has never signed in.

MagicDoor sweeps for due schedules during the company's working hours, so a schedule set for the middle of the night goes out at the start of the next working sweep rather than exactly on the minute.