NYCPlanning / labs-zap-search

Search application for the DCP Zoning Application Search
https://zap.planning.nyc.gov
13 stars 3 forks source link

Research Spike: Courier #1531

Open TylerMatteo opened 3 months ago

TylerMatteo commented 3 months ago

This Issue is a research spike to evaluate Courier as the notification vendor to use for the ZAP Listserv project.

Goals

High-level user stories for the project can be found in Figma here.

Research questions

In addition to the user stories, here are some specific questions to answer in your research:

Notes

The engineer taking this on is encouraged to create a free account with the vendor if a free tier is offered and play around. You're also encouraged to reach out to the vendor to schedule a demo. Please CC @TylerMatteo on all comms with vendors.

Deliverables

The developer taking this on should document answers to these questions as well as their overall impression of the vendor. Documentation can be put in comments to this Issue or a GH Discussion to be linked to in a comment below.

AE will be presenting this research at Technical Design Review on 8/26. @TylerMatteo will follow up with details on how to incorporate research into the slide deck mid-sprint.

dhochbaum-dcp commented 2 months ago

This Issue is a research spike to evaluate Courier as the notification vendor to use for the ZAP Listserv project.

Goals

Free Pro Enterprise
Price Free $.005/notification Contact us
Notifications 10k/mo Unlimited Contact us

High-level user stories for the project can be found in Figma here.

Research questions

In addition to the user stories, here are some specific questions to answer in your research:

Courier Preferences gives your users the ability to control which notification topics they receive, through the channels (email, sms, push, dm) of their choice. This feature is designed to give your users control over their communication preferences and to help you comply with data privacy regulations like GDPR and CCPA.

Notification templates that contain similar information can be designated to Subscription Topics. Subscription topics that are related can be grouped into Preference Sections.

You can create and manage these sections and topics in the Preferences Editor. Once configured, you can enable users to set their communication preferences via our hosted Preference Center, Preferences React Components, or the User Preferences API

Caveat: Channel Delivery Customization — i.e. allowing users to choose specific channels (email, push, SMS) for different topics — is only available to customers on the Business & Enterprise tier.

Documentation link

Yes (but note the caveat in previous question)

We can send out subscription confirmation emails but I could not find anything specific in the documentation detailing the existence of a click to confirm subscription notification. It seems we may have the capability to build within Courier such a confirmation email. I have reached out to the Courier team for more information.

Reply from Courier: Thanks for reaching out. Courier can send notifications (welcome emails) based on events on your platform through an automation workflow. (My note: Yep, this seems to be what we are looking for)

Yes, you can switch environments under Settings between Production and Test. The two environments are isolated from one another, and all the assets within them (templates, brands, tags, categories integrations, API keys, log data, etc.) belong only to that environment.

Any changes made to a template and its associated assets are only applied within the current environment until you migrate the template and overwrite any changes to the corresponding Notification ID and assets in the other environment.

Yes, in addition to the Preferences Center (described in the following section), an unsubscribe link can be added to unsubscribe recipients from the entire subscription topic. The unsubscribe link will redirect a recipient to a Preferences page confirmation that they have been unsubscribed from the entire notification and topic. preferences-unsubscribe-page 426c0f3 846

The notification recipient (end-user) is guided to the Preference Center is a Courier-hosted page that displays Subscription Topics and Preference Sections for end-users to set their communication preferences. This page can be customized in the Preferences Editor.

A recipient can select to opt-in or out of a notification (depending on the subscription topic default state) as well as select the preferred delivery channel for a notification (business-tier feature) from this page.

preferences-hosted-page 121b088 2150

Built-in analytics: stats for notifications (sent, delivered, opened, clicked, errors, etc.) with the ability to filter per channel with customized time windows and date ranges.

Caveat: This feature is available to Business-tier customers.

Batching is currently in Public Beta and under active development. The API may change, and this feature is not covered under the Enterprise SLA.

Digests Status: This product is under active development and is available in a Private Beta, please contact Courier support for access.

Scheduling is a feature of Automations that enables scheduling of a notification automation via three methods:

One-time: Set the specific time and date to invoke the automation. Recurrence: Identify a repeat schedule for the automation to be invoked. This is similar to scheduling a repeat event in a calendar application. Cron: Similar to Recurrence but with more specificity using crontab expressions.

Response from Courier: Preferences don't currently support scheduling on a user-by-user basis, but this can be done through automation with a delay or schedule trigger.

Overall thoughts:

**Overall, Courier seems to a have many of the features we are looking for right out of the box. They also support a great many integrations for email and SMS as well as Server side SDKs (node) and Client side SDK (react). The documentation is well organized and easy to follow, Contacting their support team was easy as well (via a chat embedded into their site).

The main issue I have would be the pricing. Certain features/options (such as allowing users to choose specific channels like email or SMS, for different topics) are only available in the business and enterprise tiers for which we would need to set up a call with their sales team to get the pricing options.