Events, SMS keywords and other extras
Track webinar registrations, let people text a keyword, estimate SMS cost, show in-app messages, and set up referrals, loyalty and coupons.
These features sit around your campaigns and journeys. None of them needs an extra provider account, except sending SMS.
Webinars and other events
Keep a record of an event and who registered. Needs mkt_events:write.
curl -s -X POST "$BASE/v1/marketing-events" \
-H "Authorization: Bearer $HERMETICA_API_KEY" -H "Content-Type: application/json" \
-d '{"name":"Webinar: Bring your own provider","kind":"webinar",
"startsAt":"2026-11-19T17:00:00Z","endsAt":"2026-11-19T17:30:00Z","capacity":300}'
curl -s -X POST "$BASE/v1/marketing-events/<eventId>/registrations" \
-H "Authorization: Bearer $HERMETICA_API_KEY" -H "Content-Type: application/json" \
-d '{"emails":["maya@example.com"]}'The event shows registered and attended counts. To collect registrations yourself, use a sign-up form on a landing page.
SMS
These need campaigns:write.
A keyword people text in. Someone texts WEBINAR and gets your reply:
curl -s -X POST "$BASE/v1/sms/keywords" \
-H "Authorization: Bearer $HERMETICA_API_KEY" -H "Content-Type: application/json" \
-d '{"keyword":"WEBINAR","replyText":"You are on the list for the 19 Nov webinar reminder. Reply STOP to opt out.","action":"grant_consent"}'action is none, grant_consent or add_tag (with tag). STOP, HELP and the other words carriers reserve are refused.
What a send will cost before you send it. recipients counts people per country:
curl -s -X POST "$BASE/v1/sms/estimate" \
-H "Authorization: Bearer $HERMETICA_API_KEY" -H "Content-Type: application/json" \
-d '{"body":"Starts in 1 hour: https://example.com/webinar","recipients":{"US":4},"shortenLinks":true}'A tracked short link: POST /v1/sms/links {"url":"https://example.com/webinar","ttlDays":30}.
Saved replies for your team's SMS inbox: POST /v1/sms/canned-replies {"title":"Webinar link","body":"Here is the link: https://example.com/webinar"}.
In-app messages and inbox cards
For people using your app. Needs campaigns:write.
curl -s -X POST "$BASE/v1/in-app-messages" \
-H "Authorization: Bearer $HERMETICA_API_KEY" -H "Content-Type: application/json" \
-d '{"name":"Webinar banner","layout":"banner_top","content":{"html":"<p>Join our webinar on 19 November.</p>"},
"audience":{"kind":"everyone"},"trigger":{"type":"app_open"}}'It starts as a draft. An inbox card is a message for one person, kept in their in-app inbox until it expires:
curl -s -X POST "$BASE/v1/inbox-messages" \
-H "Authorization: Bearer $HERMETICA_API_KEY" -H "Content-Type: application/json" \
-d '{"profileId":"<profileId>","title":"Your webinar seat","body":"See you on 19 November.","link":"https://example.com/webinar","expiresInDays":30}'Referrals
Give each customer a link that credits them when a friend signs up. Needs profiles:write.
curl -s -X POST "$BASE/v1/referral-programs" \
-H "Authorization: Bearer $HERMETICA_API_KEY" -H "Content-Type: application/json" \
-d '{"name":"Invite a friend","destinationUrl":"https://example.com/signup","rewardEvent":"Sent first campaign","status":"paused"}'Start it with PATCH /v1/referral-programs/<id> {"status":"active"}. GET /v1/referral-programs/<id>/links lists each person's link.
Loyalty points
Needs integrations:write.
curl -s -X POST "$BASE/v1/loyalty/programs" \
-H "Authorization: Bearer $HERMETICA_API_KEY" -H "Content-Type: application/json" \
-d '{"name":"Example Champions","pointsName":"credits","status":"paused"}'Products and coupons
Needs templates:write. Add the products you sell to the catalog:
curl -s -X POST "$BASE/v1/catalog/items" \
-H "Authorization: Bearer $HERMETICA_API_KEY" -H "Content-Type: application/json" \
-d '{"externalId":"plan-growth","title":"Growth plan","priceMinor":4900,"currency":"USD"}'A coupon pool hands out codes through a coupon block:
curl -s -X POST "$BASE/v1/coupon-pools" \
-H "Authorization: Bearer $HERMETICA_API_KEY" -H "Content-Type: application/json" \
-d '{"name":"Webinar 20% off","kind":"static","discountType":"percentage","amount":20,"enabled":false}'Add codes with POST /v1/coupon-pools/<id>/codes. A static pool gives everyone the same code; a unique pool gives each person their own and runs out when its codes do. Set enabled: true when you are ready to hand them out.
Next: Reports and dashboards.