Thank you for providing this module. I'm looking to use this module to integrate our site with GovDelivery and enable the automatic sending of email bulletins to subscribers when content is created on the site. However, I've found it rather difficult and somewhat confusing to use the module and would like to offer some suggestions for improvement from my perspective.
1. The module settings are confusing and poorly explained.
- As a new GovDelivery user, I wasn't sure what I was supposed to put in the "GovDelivery API Endpoint" field. Just the base URL from https://support.granicus.com/s/article/Getting-Started-API?language=en_US, or our account code, or a fully qualified URL, etc. I eventually figured it out, but an example or suggestion of where to find the API enpoint URL would be very helpful.
- I initially found the first two checkboxes confusing and wasn't exactly sure what they did. I also couldn't figure out why the module wasn't working until I checked those boxes. They should default to checked as that is the initial expected behavior. The help text could be reworded to be more clear, something like "Enables calls of the AddBulletinToQueue service to actually add to the queue. Can be disabled for testing, but will still write to log."
2. The module homepage
https://www.drupal.org/project/govdelivery_bulletins β
has confusing text.
- It suggests using hook_entity_save()
but there is no such hook. There is hook_entity_presave()
or hook_entity_update()
- There are links to GovDelivery Bulletins API and GovDelivery Bulletins Admin form that are just "blank" links that don't actually point anywhere.
3. I don't think I fully understand the purpose of the queue functionality or how you envisioned users using it. I want to automatically send bulletins from the website, so requiring a user to go to the queue and click a button to actually send the queued items is an extra step I'd like to avoid. Furthermore, the way items are presented on the queue page is not very user friendly. The raw XML is displayed which isn't that helpful to most users and is very verbose so a queue with just a handful of items becomes a rather lengthy page. How can I disable the queue functionality so bulletins are immediately sent?
4. The example code for calling the bulletin queue service could use more explanation.
- setFromAddress()
is shown with an actual email address, but it is actually a "from address ID" value that should be given. It's also optional and only needs to be provided if your GovDelivery account has multiple from addresses configured.
- setQueueUid()
could explain this identifier is what is used with setFlag('dedupe', TRUE)
to remove duplicates.
- setHeader()
is also optional.
5. When the GovDelivery API returns an error, the error message is often truncated in the logs. This makes it very hard to figure out what the problem is and how to correct it because you don't know what the full error message was. This might be a limitation of Guzzle or some other dependency used to make the actual HTTP calls, but if there's any way to record the full error message that would be very helpful.
I'm just getting started on our GovDelivery integration, so I might have some more suggestions in the future as I continue using the module.