Skip to main content

Create, update and remove a plan

All three require settings:write.

Create a planโ€‹

POST /v1/message-plans

Giving a level its own plan is how it stops following its parent.

Bodyโ€‹

FieldTypeRequiredDescription
scopestringyesall, rentals, experiences, bundles or item
owner_typestringwith scope=itemproduct, experience, bundle or program
owner_idintegerwith scope=itemthe item's id
enabledbooleannodefaults to true
copy_from_parentbooleannodefaults to true โ€” see below

Copy from parentโ€‹

By default a new plan starts as a copy of the one it was following, because overriding a level means "carry on from here", not "start from nothing". Pass copy_from_parent: false for an empty plan.

A rentals plan copies from all-bookings. A product's plan copies from rentals, or from all-bookings if there is no rentals plan.

curl -X POST "https://app.equipdash.com/api/v1/message-plans" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "scope": "rentals" }'

Returns 201 with the new plan and its copied messages.

If that level already has a plan you get 409 already_exists โ€” read it and patch it instead.


Switch a plan on or offโ€‹

PATCH /v1/message-plans/{id}
curl -X PATCH "https://app.equipdash.com/api/v1/message-plans/8" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "enabled": false }'

A switched-off plan does not win resolution โ€” anything following it falls through to the next level up. That is the difference between pausing a level and removing it: pausing keeps the messages, and the level below carries on as if the plan were never there.

FieldTypeRequired
enabledbooleanyes

Stop overridingโ€‹

DELETE /v1/message-plans/{id}

Removes the plan and its messages; whatever followed it goes back to inheriting from the level above.

curl -X DELETE "https://app.equipdash.com/api/v1/message-plans/8" \
-H "Authorization: Bearer YOUR_API_KEY"

Returns 204.

The all-bookings plan cannot be removed โ€” it is what every other level falls back to. Attempting it returns 422 cannot_remove_default. Switch it off instead if you want nothing sent.

Sends that already went out are unaffected; a booking's message history keeps them.