Skip to content

Commit 3f08674

Browse files
authored
Merge pull request #147 from dandi/mailchimp-info
Add information about Mailchimp usage
2 parents 3781411 + b87ac5c commit 3f08674

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed

docs/40_development.md

+53
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,59 @@ created as needed.)
158158
If you need the credentials for logging into ImprovMX, speak to Roni
159159
Choudhury (<[email protected]>).
160160

161+
### Mass emails with Mailchimp
162+
163+
The Archive maintainers are able to send email to all users through the mass
164+
emailing functions of a dedicated Mailchimp account. In technical parlance,
165+
these communications are also known as "marketing email", though as a rule the
166+
maintainers do not conduct any actual marketing through this channel.
167+
Nonetheless, such communications are governed by laws and regulations such as
168+
the American CAN-SPAM Act, the California-specific CCPA, and the European
169+
Union's GDPR; Mailchimp helps the maintainers comply with these rules and
170+
regulations.
171+
172+
Our major use case for mass email is to notify the userbase of upcoming downtime
173+
(as is needed for, e.g., a major data migration or maintenance windows).
174+
175+
If you need to mass email the DANDI Archive userbase, speak to Roni Choudhury
176+
177+
178+
#### Updating the DANDI userbase audience in Mailchimp
179+
180+
Follow these steps before sending a mass email through Mailchimp to ensure that
181+
the Mailchimp-maintained DANDI userbase audience is up to date.
182+
183+
1. Log into the DANDI admin panel and navigate to the dashboard page (at, e.g.,
184+
`api.dandiarchive.org/dashboard`).
185+
2. Click on the `Mailchimp CSV` link in the navbar to download the CSV file to
186+
disk.
187+
3. Log into Mailchimp, click on the `Audience` section in the sidebar, then
188+
click on the `Manage Audience` dropdown and select `Manage contacts`.
189+
4. Click on the `Manage audience` dropdown and select `Archive all contacts`.
190+
Then follow the confirmation prompt to carry out the archiving operation.
191+
5. Click on the `Add contacts` dropdown and select `Import contacts`.
192+
6. Select the `Upload a file` option, and follow the wizard steps, uploading the
193+
CSV file from step 2 when prompted. Activate the `Update any existing
194+
contacts` checkbox under the `Organize your contacts` step. Do not set any
195+
tags during the `Tag your contacts` step. In the `Match column labels to
196+
contact information` step, visually verify that the email address, first
197+
name, and last name columns look correctly matched. In the `Subscribe contacts
198+
to marketing` step, ensure that `Subscribed` is selected in the dropdown. In
199+
the `Review and complete your import`, read over the summary and ensure it is
200+
correct before clicking the `Complete Import` button to finish the process.
201+
202+
It is necessary to "deactivate" the entire userbase before reimporting the
203+
current slate of users from the freshly computed CSV file because Mailchimp does
204+
not have a way to perform a PUT-like operation during import (to borrow a term
205+
from RESTful API design), only to add new users and update existing ones.
206+
207+
The reason to archive the contacts instead of deleting them has to do with
208+
Mailchimp's semantics for those actions. Deleting a user means they cannot be
209+
re-added to the audience, while archiving is a reversible action that retains
210+
all data and history and merely removes that user from the audience for purposes
211+
of receiving emails. Thus, we use an archive-and-reimport procedure to emulate
212+
the PUT-like operation we actually need.
213+
161214
## Miscellaneous Tips and Information
162215

163216
### Use email address to log into dev Django admin panel

0 commit comments

Comments
 (0)