For most products, NY Senate Technology Services publishes non-proprietary code on Github and welcomes issue reports and pull requests from external developers. The New York State Senate is an avid consumer of open source technology. Because public funds are used to for our projects, we return the source code to the public domain.
This repository is published primarily for academic purposes. Specifically, our goal is to share details of our approach with the broader Drupal community and with other local, state, and national legislatures that may be interested in implementing a similar system. To that end, we’d like to draw your attention to some of the custom aspects of our implementation. Here are a few highlights:
Open Legislation Integration
NYSenate.gov is a customer of the Open Legislation API (also created and maintained by NY Senate Technology Services). This service manages the full revision history of all official legislative documents in the NY State Legislature (more than 150,000 bills, laws, calendars, agendas, sponsor memos, etc.), and NYSenate.gov syncs with it every few minutes. You can explore key integration points in the following modules:
Bluebird CRM Integration
NYSenate.gov has a suite of CRM features built in to help senators and staff manage correspondence with their constituents. Additionally, NYSenate.gov supports a one-way sync to our full-featured internal constituent relationship management solution, Bluebird (also published by NY Senate on Github). We refer to the integration point as “the accumulator,” and it serves a transaction log of all relevant constituent activity on the web site to authorized clients.
Senate Address Geocoding Engine (SAGE) Integration
An important function of NYSenate.gov is classifying inbound constituents according to the New York State senator who represents them. Since representation is based on geography, this could not be done without SAGE, an open source geocoding service built and maintained by the New York State Senate. Every time a user signs up on NYSenate.gov, SAGE is called to match their address to a senate district. You can take a look at the integration point in the NYS SAGE module.
Slack Integration
Mission-critical system notifications are published directly into our internal Slack channel. The module providing that functionality can be found here.