Skip to content

Files

Latest commit

 

History

History
3020 lines (1849 loc) · 246 KB

CHANGELOG.md

File metadata and controls

3020 lines (1849 loc) · 246 KB

Changelog

All notable changes to this project will be documented in this file. See standard-version for commit guidelines.

7.3.0 (2023-12-10)

Features

  • add generic title/content notice type (#1677) (adb168d)
  • use title/content notice type with envvar for rewired shutdown (#1678) (decedcc)

Bug Fixes

7.2.0 (2023-11-14)

Features

7.2.0-rc.0 (2023-09-12)

Features

  • view messaging service name on campaign details page for orgs with multiple msg services (#1623) (652b80c)
  • start-campaign-button: warn before starting campaign without survey responses (#1616) (9bf1c57)
  • indicate new campaign id(s) from template (#1629) (0af2c75)
  • campaign-interaction-steps: add save button to top of section (#1610) (0d035af)
  • emails: add email template with wrapper (#1588) (94fc8fa)

Bug Fixes

Backend Changes

7.1.0 (2023-08-02)

Features

Bug Fixes

  • canned responses: default to alphabetical sorting (#1647) (7d53908)
  • canned responses: handle canned response moving up in the list (#1646) (0b9d2de)
  • csv mapping: add autocomplete label (#1649) (480d078)
  • csv mapping: rerender on file upload (#1650) (2c372ce)

Backend Changes

7.0.0 (2023-07-26)

Backend Changes

  • csv mapping: update required headers copy (#1644) (69a07ef)

7.0.0-rc.1 (2023-07-25)

Bug Fixes

  • copy campaign: copy display order for canned responses (#1643) (0cd4643)

7.0.0-rc.0 (2023-07-13)

⚠ BREAKING CHANGES

  • allow uploading arbitrary csvs (#1540)

Features

Bug Fixes

  • messaging services: add org id to fakeservice sid (#1607) (3cee1d8)

Backend Changes

  • use more accurate variable naming (#1576) (21c7138)
  • notification frequency: update default to DAILY (#1585) (e76ade3)
  • telco errors: update with latest known descriptions (#1635) (e3b9e78)

6.4.0 (2023-07-04)

6.4.0-rc.0 (2023-06-28)

Features

  • use new API to check if organization has a 10dlc service (#1628) (687be34)

Backend Changes

6.3.3 (2023-06-13)

Features

Backend Changes

6.3.2 (2023-06-08)

Bug Fixes

  • 10dlc: revert notification article link (cbc054e)

6.3.1 (2023-06-08)

Backend Changes

6.3.1-rc.0 (2023-05-24)

Bug Fixes

6.3.0 (2023-05-23)

6.3.0-rc.1 (2023-05-17)

Bug Fixes

  • autosending: fetch campaign id when pausing (#1611) (da8772e)

6.3.0-rc.0 (2023-05-17)

Features

6.2.0 (2023-05-16)

6.2.0-rc.2 (2023-05-10)

Bug Fixes

6.2.0-rc.1 (2023-05-08)

Bug Fixes

  • van configuration reading the wrong query (#1589) (fe5e6d7)

6.2.0-rc.0 (2023-03-14)

Features

Bug Fixes

  • messaging services: add fakeservice default (#1570) (89d7d8b)

Backend Changes

6.1.3 (2023-04-21)

Bug Fixes

  • van configuration reading the wrong query (3935821)

6.1.2 (2023-02-27)

Bug Fixes

6.1.1 (2023-02-15)

Bug Fixes

Backend Changes

6.1.0 (2023-02-06)

Bug Fixes

  • instrumentation: Move metrics middleware earlier in the stack to capture more of the call cycle (#1552) (338b241)

6.1.0-rc.1 (2023-01-03)

Features

  • allow cloning, and deleting template campaigns (#1523) (9348046)
  • don't hide campaign create options on removing focus (#1522) (629a86d), closes #1477
  • message review: show tag and tagger details (#1530) (7d9b801)

Bug Fixes

  • bulk script editor: tidy full script version replacement preview (#1528) (89f548d)
  • message review: filter opt outs by organization (#1527) (c493e52)

Backend Changes

  • release: 6.1.0-rc.0 (2b6d583)
  • standarize components / containers locations (#1537) (fbc59d6)
  • mui v4: update icon menu to v4 button + menu (#1517) (77ba0c0)
  • script editor: move opt out language warning into a dialog (#1521) (5115603)

6.1.0-rc.0 (2023-01-03)

Features

  • allow cloning, and deleting template campaigns (#1523) (9348046)
  • don't hide campaign create options on removing focus (#1522) (629a86d), closes #1477
  • message review: show tag and tagger details (#1530) (7d9b801)

Bug Fixes

  • bulk script editor: tidy full script version replacement preview (#1528) (89f548d)
  • message review: filter opt outs by organization (#1527) (c493e52)

Backend Changes

  • standarize components / containers locations (#1537) (fbc59d6)
  • mui v4: update icon menu to v4 button + menu (#1517) (77ba0c0)
  • script editor: move opt out language warning into a dialog (#1521) (5115603)

6.0.0 (2022-12-13)

6.0.0-rc.1 (2022-12-06)

Features

  • assemble-numbers: add counter to sendMessage (#1518) (73aea18)

Bug Fixes

  • autosending: change how initials are picked (#1542) (60922fc)

6.0.0-rc.0 (2022-11-03)

Features

  • add redis caching layer, implement core, aggregates (#1483) (ef49b65)

Bug Fixes

Backend Changes

5.1.0 (2022-11-03)

5.1.0-rc.2 (2022-11-01)

Bug Fixes

  • gql-schema: import libs in build for gql schema (#1511) (5fa2237)

5.1.0-rc.1 (2022-11-01)

Features

5.1.0-rc.0 (2022-10-31)

Bug Fixes

  • autosending: prevent "Queue" user action for orgs without mps (#1489) (e41bc51)
  • disable autosending page if no organization mps (#1479) (3b5a99b)
  • handle case where underlying assignment no longer exists (#1488) (1c611bb)
  • restrict campaign templates to organization (#1478) (19b14de)
  • skip queuing organizations with 0 mps (#1487) (b6ba4bd)
  • use determinate progress bar type (#1485) (b040337)
  • offline: add a link to the status page (#1480) (ce6ddfd)

Backend Changes

  • remove types from gql schema (#1475) (afc0d7c)
  • update fillfactor to reasonable value (#1499) (fb08b3f)
  • changelog: add refactor and perf commits to backend section (#1501) (0bc613a)

5.0.0 (2022-10-31)

Backend Changes

5.0.0-rc.1 (2022-10-28)

5.0.0-rc.0 (2022-10-20)

Features

Bug Fixes

Backend Changes

4.39.1 (2022-10-19)

4.39.1-rc.1 (2022-10-17)

Bug Fixes

4.39.1-rc.0 (2022-10-17)

Bug Fixes

  • queue-autosend-organization-initials: dont mark other orgs campaigns complete (#1469) (a8c8d2a)
  • fix UI states for campaign and texter (#1454) (fb1b0ef)
  • support script preview for template campaigns (#1451) (78ce3b8)
  • truncate day based on contact's timezone (#1449) (15021da)

Backend Changes

4.39.0 (2022-10-12)

Backend Changes

4.39.0-rc.2 (2022-10-06)

Bug Fixes

  • fix autosending query parameter type error (#1452) (cea89ff)

4.39.0-rc.1 (2022-10-06)

Features

  • add database backed per organization autosending (#1446) (d856ae2)
  • support importing contacts from arbitrary csv url (#1434) (1d85657)

Bug Fixes

  • bulk script editor: grammar and spelling (#1448) (ac9aab1)

4.39.0-rc.0 (2022-09-30)

Bug Fixes

4.38.0 (2022-09-29)

Features

  • script editor: add opt out language warning (#1436) (f2127da)

Bug Fixes

4.38.0-rc.1 (2022-09-26)

Features

Bug Fixes

Backend Changes

  • list chore in changelog and release docs (#1430) (7aaf1f5)

4.38.0-rc.0 (2022-09-21)

Features

  • opt outs: allow exporting all or selected campaigns (#1417) (6ee1b1f)
  • add opt outs page, and allow opt in (#1395) (f309f88)
  • display campaign variable values in script previews (#1412) (c3c479b)

Bug Fixes

  • bulk script editor: only show versions being changed (#1408) (9fc769a)

4.37.1 (2022-09-20)

4.37.1-rc.1 (2022-09-19)

Bug Fixes

4.37.1-rc.0 (2022-09-16)

Features

Bug Fixes

4.37.0 (2022-09-15)

Features

Bug Fixes

  • set transparent background for progress indicator (#1423) (ccbf786)

4.37.0-rc.2 (2022-09-14)

Features

Bug Fixes

4.37.0-rc.1 (2022-09-12)

Features

4.37.0-rc.0 (2022-09-02)

Features

  • show a snackbar on mulitple graphql server errors (#1362) (1ef811d)

Bug Fixes

4.36.0 (2022-08-31)

4.36.0-rc.3 (2022-08-29)

Bug Fixes

  • campaign builder: fix deleting interaction steps (#1357) (685c66f)

4.36.0-rc.2 (2022-08-26)

Bug Fixes

4.36.0-rc.1 (2022-08-26)

Features

Bug Fixes

4.36.0-rc.0 (2022-08-24)

Features

Bug Fixes

  • message-review: display accurate error description (#1351) (012f629)

4.35.1 (2022-08-17)

Bug Fixes

4.35.0 (2022-08-17)

4.35.0-rc.1 (2022-08-16)

Bug Fixes

  • allow admins to enumerate messaging services (#1345) (8a75df7)
  • interactions: dont show duplicate warnings (#1346) (32bb35b)

4.35.0-rc.0 (2022-08-08)

Features

  • bulk editor: confirm changes before updating (#1329) (913faa9)
  • texter conversation: update button in line with design doc (#1340) (0114bad)
  • store and export filtered contacts (#1320) (058cd03)

4.34.1 (2022-08-07)

Bug Fixes

4.34.0 (2022-08-03)

4.34.0-rc.2 (2022-07-28)

4.34.0-rc.1 (2022-07-26)

Features

  • texter conversation: update button in line with design doc (#1321) (beb7287)

Bug Fixes

4.34.0-rc.0 (2022-07-25)

Features

Bug Fixes

4.33.0 (2022-07-13)

4.33.0-rc.5 (2022-07-11)

Bug Fixes

  • set initial values of message filters reading (#1305) (ac7d87a)
  • campaign builder: return nullable messaging services (#1315) (5870987)
  • disable restricting to teams when no teams added (#1313) (025c908)
  • fix contact filters being a letter behind (#1304) (45afd80)
  • mark landlines as unfiltered on new contacts upload (#1290) (a8e395a)

4.33.0-rc.4 (2022-06-30)

Bug Fixes

  • message-review: include campaign id in title search (#1301) (30faba8)
  • message-review: listen for clicks on entire card header (#1299) (a294dd1)

4.33.0-rc.3 (2022-06-26)

Features

Bug Fixes

4.33.0-rc.2 (2022-06-24)

Features

  • campaign builder: allow picking messaging service for campaign (#1264) (b26d880)
  • default texting timezone for organization (#1279) (8ce77ef)
  • display tailored message for do not assign texters (#1280) (0eb01a6), closes #828

Bug Fixes

  • queue-autosend-initials: fix row_number order by conflict (#1291) (e0d7ad0)
  • editing question response should update value in UI (#1281) (5a3d814)

4.33.0-rc.1 (2022-06-21)

Bug Fixes

4.33.0-rc.0 (2022-06-14)

Bug Fixes

  • reply handling: fix messaging_service_sid check in the incorrect section (#1268) (62ca8a0)

4.33.0-0 (2022-06-09)

Features

Bug Fixes

4.32.2 (2022-06-07)

Bug Fixes

4.32.1 (2022-06-06)

Bug Fixes

4.32.0 (2022-06-05)

Features

  • add script preview to interactions section (#1237) (9180159)

Bug Fixes

  • fix post-login redirect behavior for local auth (#1256) (1cb2b60)
  • show notification settings alert only on user edit (#1257) (db5dbac)
  • autosend: return on expected errors (#1248) (e0c8980)
  • autosending: preserve run_at when queuing messages (#1255) (3dcf483)
  • external-system: fix displaying errors (#1254) (fa8558f)
  • external-system: fix saving credentials (#1253) (db03817)

4.31.0 (2022-06-01)

Features

Bug Fixes

4.30.1 (2022-05-25)

Bug Fixes

  • fix early marking of autosend campaign as complete (#1241) (5c8e420)

4.30.0 (2022-05-25)

Features

Bug Fixes

4.29.0 (2022-05-25)

Features

Bug Fixes

4.28.1 (2022-05-21)

Bug Fixes

  • fix check for blank email (94e5848)

4.28.0 (2022-05-21)

Features

  • add option to create campaign(s) from template (#1224) (1354599)

Bug Fixes

  • template-campaigns: add missing resolver (#1225) (0c992e6)
  • match mui v0 styling with v4 buttons (#1223) (77e54ae)
  • require returning non null campaign stats (#1222) (0046f31)
  • turn off initial autoassignment for campaigns that are autosending (#1208) (2c154a3)
  • passport: standardize on spoke user (#1215) (dd56bd3)

4.27.0 (2022-05-19)

Features

Bug Fixes

4.26.3 (2022-05-13)

Bug Fixes

4.26.2 (2022-05-13)

4.26.1 (2022-05-13)

Bug Fixes

4.26.0 (2022-05-13)

Features

  • notifications: allow texters to configure notification frequency (#1131) (8800ee2)

Bug Fixes

4.25.0 (2022-05-02)

Features

4.24.1 (2022-04-26)

Bug Fixes

  • add campaign id to conversation rows (#1148) (f0de0c4), closes #831
  • don't create a contacts upload job if contacts doesn't exist (#1147) (b2266ff), closes #678
  • fix fetching canned responses by texters (#1150) (63dde87)
  • remove header element styling from interaction step titles (#1149) (00db0bb)
  • update spoke portal hostname (1de8d14)

4.24.0 (2022-04-12)

Features

  • add canned responses to message review (#1142) (50f9a37)
  • add contact name and campaign title to message review (#1141) (3b19f08)
  • allow collapsing interaction steps (#1137) (f008792)
  • allow navigation to campaign stats page from campaign edit page (#1139) (2702100)

4.23.0 (2022-03-30)

Features

4.22.1 (2022-03-24)

Bug Fixes

  • fix permissions in script preview url resolver (#1127) (167ba91)

4.22.0 (2022-03-24)

Features

4.21.1 (2022-03-18)

Bug Fixes

  • fix copy campaign statement (0425b1f)

4.21.0 (2022-03-18)

Features

  • allow navigation to previous and next campaign through campaign page (#1111) (7d875e0), closes #1087
  • optout: automatically optout for common optout language (#1110) (74b5bd9), closes #1089

Bug Fixes

  • ensure non-null value for campaign isApproved (#1119) (5c3b7c4)
  • fix display of survey questions (#1122) (8b0d3e0)
  • handle null campaign groups for supervolunteer role (#1121) (e7b109d)

4.20.0 (2022-03-05)

Features

  • add superadmin approval for campaigns (#1106) (dbb2882)
  • message filter: allow searching using cell phone number (#1090) (8c08a2c)

Bug Fixes

4.19.1 (2022-02-26)

Bug Fixes

  • fall back to null on NaN (8642409)

4.19.0 (2022-02-25)

Features

Bug Fixes

  • convert client-side id args from int to string (#1085) (8c0e83c)
  • enable link replacement only if envvar is enabled (#1088) (4ec2f16)

4.18.1 (2022-02-20)

Bug Fixes

  • export-campaign: fix attemptedAt being empty in export (#1083) (1fd221e), closes #1068

4.18.0 (2022-02-19)

Features

Bug Fixes

4.17.2 (2022-01-27)

Bug Fixes

  • fix read permissions for organization settings (#1051) (df10769)

4.17.1 (2022-01-21)

Bug Fixes

4.17.0 (2022-01-18)

Features

  • support disabling script link confirmation (#1043) (fc111dc)

Bug Fixes

4.16.1 (2022-01-06)

Bug Fixes

4.16.0 (2021-12-31)

Features

4.15.4 (2021-12-03)

Bug Fixes

4.15.3 (2021-11-02)

Bug Fixes

4.15.2 (2021-10-27)

Bug Fixes

  • apollo: fix cache manipulation (108cb76)

4.15.1 (2021-10-26)

4.15.0 (2021-10-14)

Features

Bug Fixes

4.14.1 (2021-09-26)

Bug Fixes

4.14.0 (2021-09-24)

Features

  • 10dlc: add registration link to settings (#1013) (c9a4176)

4.13.1 (2021-09-24)

Bug Fixes

4.13.0 (2021-09-22)

Features

4.12.1 (2021-09-18)

Bug Fixes

  • resolve id column ambiguity (0b6aab8)

4.12.0 (2021-09-08)

Features

Bug Fixes

4.11.0 (2021-09-02)

Features

4.10.2 (2021-08-26)

Bug Fixes

  • preserve nextUrl through slack login flow (#1006) (4bb0d0c)

4.10.1 (2021-08-23)

Bug Fixes

4.10.0 (2021-08-06)

Features

Bug Fixes

4.9.2 (2021-07-22)

Bug Fixes

  • van: fix max page size for fetching van saved lists (f670a37)

4.9.1 (2021-07-08)

Bug Fixes

  • fix inconsistent landline filtration (d2c523c)
  • van: fix sync for contacts with both opt out and responses (#953) (374c49c)

4.9.0 (2021-06-29)

Features

  • van: use 'SMS Text' contact type for canvass responses (#989) (8381dd1)

Bug Fixes

4.8.0 (2021-06-12)

Features

4.7.6 (2021-06-11)

Bug Fixes

  • update copy for filter landlines section (#982) (700df7b), closes #965
  • texters: assign from pool of all unassigned conversations (#973) (774197f), closes #964

4.7.5 (2021-06-02)

Bug Fixes

4.7.4 (2021-05-19)

Bug Fixes

  • update pgc-ngp-van for configurable webhook url (#963) (52077ec)

4.7.3 (2021-05-12)

Bug Fixes

4.7.2 (2021-05-04)

Bug Fixes

4.7.1 (2021-04-30)

Bug Fixes

  • campaign-texters: fix and simplify manual texter assignment (#856) (951c688)
  • trollbot: prevent adding empty tokens (7a7bba5)
  • trollbot: support multiple regconfigs (#947) (96629ad), closes #930
  • ux: make dialog text color readable again (f528faf)

4.7.0 (2021-04-28)

Features

  • trollbot: improve navigation of troll alarms (#946) (51f93ad)

4.6.0 (2021-04-20)

Features

  • deliverability-stats: show all errors in descending order (#942) (9ba3320)

Bug Fixes

  • assemble numbers process delivery report (#941) (85db4ac)
  • fix admin navigation menu rotation in firefox (#943) (efdb649)

4.5.1 (2021-04-14)

Bug Fixes

  • fix typo in toggle label (ebc58dd)

4.5.0 (2021-04-13)

Features

  • p2: add toggle for excluding newer contacts (#939) (ce72ef7)
  • add button to remove all users from organization (#937) (274710c)
  • allow changing organization name (#938) (461dbd8)

4.4.0 (2021-03-24)

Features

  • add campaign ID and contact name to troll alarm details (#931) (d793226)
  • support even more branding options (#923) (18acce0)

Bug Fixes

  • canned-responses: restore dialog to full width (#932) (fe66b89)
  • trollbot: prevent adding invalid tokens (#928) (6e4e093)

4.3.0 (2021-03-23)

Features

  • make slack team sync crontab configurable (#927) (bcd4401)

Bug Fixes

  • serialize dates using ISO 8601 format (#921) (9ac5376)

4.2.4 (2021-03-17)

Bug Fixes

  • manual-assignment: remove unused expensive query (#926) (f4dc58f)
  • remove timeout fetching instance settings (#925) (46e1979)

4.2.3 (2021-03-16)

Bug Fixes

4.2.2 (2021-03-12)

Bug Fixes

  • disable unsupported copy/paste block rather than crashing (#918) (480d24d)
  • fix crash editing interaction step (#919) (6b41cd8)
  • fix texter crash when clearing a survey response (#920) (f5d3381)

4.2.1 (2021-03-11)

Bug Fixes

4.2.0 (2021-03-04)

Features

Bug Fixes

  • set answer actions to correct value (#906) (1c934b4)
  • update slack for header-based authentication (#903) (28a61c3)

4.1.0 (2021-02-27)

Features

Bug Fixes

4.0.2 (2021-02-23)

Bug Fixes

4.0.1 (2021-02-18)

Bug Fixes

  • force update of fs-capacitor to fix file upload (54954e0)

4.0.0 (2021-02-17)

⚠ BREAKING CHANGES

  • Support has been dropped for Node v8, v10, and v12.
  • Support for Mailgun has been dropped due to no suitable Node library.

Bug Fixes

  • worker: fix lock on semaphore and add early return (#891) (0427634)
  • use structured logging for worker migrations (#888) (2a12c01)

build

3.15.5 (2021-02-10)

Bug Fixes

  • interaction-steps: handle case of empty campaign (#886) (d094b0f)

3.15.4 (2021-02-09)

Bug Fixes

3.15.3 (2021-02-03)

Bug Fixes

  • delete old interaction step tree on save of new tree (#882) (620e5aa)
  • use single source of truth for interaction steps (#878) (2c364f4)

3.15.2 (2021-01-29)

Bug Fixes

  • make makeTree() deterministic (#880) (de26bf6)
  • datatables: force latest material-ui to fix rows per page dropdown (#876) (a6cc048)
  • deliverability-stats: ensure consistent null return type (#877) (18ffa4f)

3.15.1 (2021-01-26)

Bug Fixes

3.15.0 (2021-01-25)

Features

  • display character/segment counts in texter view and message review (#860) (2e6fe60)

Bug Fixes

  • van: fall back to 'canvassed' result code for 'messaged' contacts (#867) (4bd6d7e)
  • vanoperationmode: remove operation mode key from external system mutations (#868) (1cfef22)

3.14.3 (2021-01-21)

Bug Fixes

  • add getSendBeforeUtc util to fix sendBefore (#864) (f70c845)
  • fix error count summation (#863) (42cd11a)
  • pass membership id, not user id, to mutation (#866) (bc04b78)
  • sendbuttonarrow: pin the send arrow to the top of the message field (#859) (2fc088b)

3.14.2 (2021-01-20)

Bug Fixes

  • fall back to provided zone name (b9e1e79)

3.14.1 (2021-01-20)

Bug Fixes

  • add defensive fix for null/undefined zone name (#861) (010341e)

3.14.0 (2021-01-19)

Features

  • users: add superadmin option to role selection (#850) (177350b)
  • per organization message limits (#857) (8c61cf0)
  • campaign-detail-page: add message errors (#824) (5b948b0)
  • van: add operation mode select to integration config (#813) (b4a1028)
  • searchable people (#819) (45a887d)

Bug Fixes

  • admincampaignedit: fix use of lodash/pick in checkSectionSaved (#852) (976e099), closes #851
  • campaignteamsform: remove mutation of props (#825) (448d1e4)
  • timezones: map deprecated tzs to canonical tzs (#855) (4fb2ac8), closes #853
  • user: unique email addresses with migration (#821) (a9cd813)

3.13.1 (2021-01-05)

Bug Fixes

  • restore tag functionality in assignment row (#823) (1584247)

3.13.0 (2020-12-28)

Features

3.12.0 (2020-12-21)

Features

Bug Fixes

  • dockerifle: restore proper node version (40916db)
  • dockerifle: restore proper node version (a8a295c)

3.11.0 (2020-12-16)

Features

Bug Fixes

  • revert query argument to use gql query argument (#810) (640f50c), closes #726
  • integrations: pass correct value to binding (8c1eea4)
  • switchboard: update client lib to support sendBefore param (9e0914d), closes #774

3.10.1 (2020-12-15)

Bug Fixes

  • auth: remove incorrect local login error (#808) (ef1b8cd)
  • make disabled buttons unclickable (#802) (946d82f)
  • wrap long campaign descriptions (#803) (05fc9a7)
  • van: sync messaged contacts without question responses (#798) (8aff5d7)
  • add contact name filter to bulk assignment action filter (#799) (cb5cd3b), closes #796
  • fix message review display in safari (#800) (a1274ac)

3.10.0 (2020-12-11)

Features

Bug Fixes

  • add authz check to myCurrentAssignmentTargets resolver (#792) (a2f13d7)
  • add missing query properties (204d9b1)
  • copy campaign deleted interactions (#801) (60e57e2)
  • fix campaign list pagination (#794) (a9ea0c9)
  • fix issues introduced in eslint pr (0d8765a)
  • escalationtags: check tags in assignment row chip input component (#790) (7e2ce7c)

3.9.0 (2020-11-16)

Features

Bug Fixes

  • canned responses: remove ref from functional component (#762) (e49a96a)
  • exports: rm catches in helper fns (#761) (2a85b74)

3.8.1 (2020-11-02)

Bug Fixes

  • edit-campaign: revert extract canned responses section (#751) (3adf21c)

3.8.0 (2020-11-01)

Features

3.7.0 (2020-10-27)

Features

  • tags: expose script, color and webhook url editing in tag editor (#757) (2db5ff0)

3.6.1 (2020-10-24)

Bug Fixes

3.6.0 (2020-10-23)

Features

  • log express errors with winston logger (#754) (dfced8e)

Bug Fixes

  • fetch myAssignmentTargets only if logged in (#753) (83aa1c1)

3.5.1 (2020-10-21)

Bug Fixes

3.5.0 (2020-10-21)

Features

Bug Fixes

  • assemble:sendmessage: add sendBefore support for assemble (#747) (57b5aa0)

3.4.0 (2020-10-09)

Features

  • trollbot: support all-string payloads (#744) (b44847a)

Bug Fixes

3.3.0 (2020-10-08)

Features

  • trollbot: support webhooks for trollbot alarms (#742) (2ffb28a)

3.2.0 (2020-10-08)

Features

  • exports: move export to graphile worker (#738) (89bd9ac)
  • remove 'GraphQl Error:' from error messages (#737) (33de981)

Bug Fixes

3.1.2 (2020-10-03)

Bug Fixes

  • slack: decrease sync rate to fix rate limiting (#739) (4a57309)

3.1.1 (2020-10-02)

Bug Fixes

  • edit-campaign: compare to null rather than undefined (b2843d0)

3.1.0 (2020-10-02)

Features

  • van: add integration tag to campaign list (9697881)

Bug Fixes

  • van: disable csv source when using integration (c8b50a2)
  • van: insert initial result message (dc2b8f7)
  • van: show question in add mapping modal (db5ec23)

3.0.0 (2020-10-01)

⚠ BREAKING CHANGES

  • van: VAN integration is a major feature release

Features

2.11.1 (2020-09-30)

Bug Fixes

2.11.0 (2020-09-28)

Features

2.10.2 (2020-09-25)

Bug Fixes

  • fix get_trollbot_matches function (c6b83fd)

2.10.1 (2020-09-25)

Bug Fixes

  • add tag to contacts on save (#733) (03fc124)
  • assignment: dont delete assignments, breaks opt out foreign keys (#734) (999b404)
  • fix up/down migrations (#728) (c16aabf)
  • invoke scrollTo only if conversation has messages (#732) (aea6597)
  • trollbot: do not escape the token (f77c8a9)

2.10.0 (2020-09-13)

Features

  • allow filtering campaign overlaps by archived state (#727) (f0b32b9)

2.9.3 (2020-09-08)

Bug Fixes

  • skip empty delivery report updates (5a1cb59)

2.9.2 (2020-09-07)

Bug Fixes

  • assignable_campaigns: add due_by clause (#725) (2a97a00)
  • copy-campaign: await memoizer.invalidate (50ead5b)
  • end-conversation: auth error for non assigned admin (#724) (3f95dfb)
  • export-campaign: reintroduced empty messages file w/ unmessaged (aa24d83)
  • exports: invoke S3 upload as promise (017add4)
  • migrations: remove function body (a0c92bd)
  • export for van pagination error (#723) (39131ea)

2.9.1 (2020-08-26)

Bug Fixes

  • message-review: exclude archived and opted-out from escalated count (dc36b2c)

2.9.0 (2020-08-26)

Features

  • message-review: add 'end conversation' button (46958d9)

Bug Fixes

  • admin: fix escalated conversation count (3e022b2)

2.8.0 (2020-08-25)

Features

  • allow hiding of campaign tags on archived campaigns via env var (#713) (9de5caa)

Bug Fixes

  • message-review: filter out empty messages (#718) (0da7f0a)
  • script-preview: exclude soft-deleted interaction steps (#719) (2314f0c)
  • export progress (#712) (668b04f)

2.7.1 (2020-08-18)

Bug Fixes

2.7.0 (2020-08-18)

Features

  • add option to send payload as all strings (4e4fada)
  • export all campaigns by argv query script (05c06e3)

2.6.3 (2020-08-14)

2.6.2 (2020-08-12)

Bug Fixes

2.6.1 (2020-08-12)

Bug Fixes

2.6.0 (2020-08-07)

Features

  • deprioritize handling delivery reports (#702) (aab32c0)

Bug Fixes

2.5.0 (2020-08-01)

Features

Bug Fixes

  • skip setting empty authorization header (428dd1f)

2.4.0 (2020-07-21)

Features

  • include organization name in assignment requested webhook payload (8cb36c5)

2.3.1 (2020-07-16)

Bug Fixes

  • exit with 0 on duplicate invite (d6b6675)
  • include external id on van fetch saved list (#694) (9044136)

2.3.0 (2020-07-08)

Features

Bug Fixes

  • van: include additional fields (9933d91)
  • van: perform ordering in node (e469737)

2.2.2 (2020-07-07)

Bug Fixes

  • integrations: fix API key ref handling (6cedb62)

2.2.1 (2020-07-04)

Bug Fixes

2.2.0 (2020-07-03)

Features

Bug Fixes

  • twilio: fix logic for delivery report handling (cce4652)
  • fix logic for delivery report handling (a359120)
  • exports: include fields in csv output (eae3b3c)

2.1.1 (2020-06-29)

Bug Fixes

  • ignore delivery report if message is ERROR or DELIVERED (313c67c)

2.1.0 (2020-06-27)

Features

  • support configurable datadog tags (4492b0b)

2.0.1 (2020-06-27)

Bug Fixes

2.0.0 (2020-06-26)

⚠ BREAKING CHANGES

  • introduces pg-compose

Features

Bug Fixes

  • check correct data warehouse envvar (9794146)
  • check if returned record is an empty record (#683) (d1a2036)
  • copy campaign in transaction (#685) (43e9025)
  • set default text request type for General team (#687) (be3c13d)
  • use primary column rather than hardcoded 'id' (24e886e)

1.13.1 (2020-06-07)

Bug Fixes

  • request Slack identity scopes (406fa16)
  • use Slack application token for non-identity scope requests (746c551)

1.13.0 (2020-05-29)

Features

Bug Fixes

  • prevent clearing campaign logo image url (#676) (41f119c)
  • prevent crash on bad script preview token (#673) (459347d)

1.12.1 (2020-05-21)

Bug Fixes

1.12.0 (2020-05-20)

Features

  • display icon next to organizations with available assignments (#669) (5ff6e02)

Bug Fixes

  • handle case where campaign has no interaction steps (#668) (4b482d6)
  • prevent passing empty array to addPhoneNumbers (#665) (2659d36)
  • use fullscreen modal to fix overflow (#667) (b30ec9a)

1.11.1 (2020-05-13)

Bug Fixes

1.11.0 (2020-05-12)

Features

  • add contact display settings (#661) (5aee74c)
  • add superadmins as owners to new organizations (#660) (751e4e4)
  • breakout landline filtration (ac5d674)

Bug Fixes

1.10.0 (2020-05-07)

Features

1.9.7 (2020-05-06)

Bug Fixes

  • use component comparison from react-hot-loader (be9ac6b)

1.9.6 (2020-05-05)

Bug Fixes

1.9.5 (2020-04-29)

1.9.4 (2020-04-29)

1.9.3 (2020-04-29)

1.9.2 (2020-04-29)

1.9.1 (2020-04-29)

Features

Bug Fixes

1.9.0 (2020-04-23)

Features

Bug Fixes

1.8.5 (2020-04-15)

Bug Fixes

  • fix permission check (#631) (b549f9d)
  • remove auth query param from segments helpdesk url (#637) (29512aa)
  • require owner permissions to query settings (#632) (03c9890)
  • use the same knex client throughout query builder (#640) (43aba59)

1.8.4 (2020-04-10)

Bug Fixes

  • prevent conversation overflow (7098c25)

1.8.3 (2020-04-10)

Bug Fixes

  • fix flexbox height calculation in Safari (#630) (83cf4a2)

1.8.2 (2020-04-08)

Bug Fixes

1.8.1 (2020-04-07)

1.8.0 (2020-04-06)

Features

Bug Fixes

  • export config as commonjs module to support knex cli (1edba6b)
  • ux: make pencil icon size dynamic (take 2) (#583) (d85d648)

1.7.1 (2020-03-30)

1.7.0 (2020-03-30)

Features

Bug Fixes

  • message review action resolver errors (#613) (649192d)
  • throw error only if ineligible for access check (770336c)
  • ux: avoid flashing background between texts (#608) (0a605a2)

1.6.1 (2020-03-23)

Bug Fixes

1.6.0 (2020-03-21)

Features

Bug Fixes

  • message-review: prevent duplicate fetches of users (#605) (a02295e)
  • reset texter loading UI state on refetch (#602) (cf07e59)

1.5.1 (2020-03-13)

Bug Fixes

1.5.0 (2020-03-12)

Features

  • 404 like page for bad campaign id (6868efd)
  • accept firstname, first_name, lastname, last_name (5038d07)
  • add apply tags helper text (b1373be)
  • add auto assign toggle to operations dialog (8d3c66b)
  • add delete selected button to campaign overlap module (d0066a1)
  • add error handling (639b8c5)
  • add progress and new campaign id to copy campaign (9ab3241)
  • add reply count on release (251ef14)
  • add segment counter (2e0618d)
  • add symmetric decrypt script (1cc1a99)
  • add withOperations HOC (6e3fb47)
  • allow disabling the badge counts (5043a44)
  • allow disabling the Texters section of campaign edit (7078a91)
  • allow inserting Switchboard LRN API key (809b357)
  • auto approve / reject basics (8478ad2)
  • cache and invalidate campaigns list (4b3bdf4)
  • cache assignment.campaign (f6c7383)
  • cache get users for 5 minutes (dd24beb)
  • cache information for get contacts (77fc0a8)
  • cache my current assignment targets for one minute (b2b5f0d)
  • campaign html preview (6d190d0)
  • communicate texters loading (dee43d5)
  • copy blocks (5e67451)
  • disable dynamic assignment (2e0a405)
  • env var for auto handle request concurrency (ed2b10d)
  • execute easy unicode -> gsm replacements (7a54d66)
  • flag to hide contact info (2f96e41)
  • handle shutdown gracefully (a8ca156)
  • hide auto handle behind yaev (3d8f810)
  • improve release all unnhandled replies (0bccfb8)
  • include campaign in tag webhook payload (6bb94b5)
  • limit notifications to once per 30 seconds per team (8645017)
  • make exclude recently contacted contacts have a default of true on mark for second pass (bc49230)
  • make search for texters fast (802f184)
  • more cautious second passes (b961069)
  • optimize get assignment contacts (d745488)
  • optimize get todos (9e319b9)
  • optimize getContactMessagingService (cf5cf12)
  • optimize overlap deletion - no reason to materialize distinct cell (d9cce3a)
  • page size changes in contact overlap deletion (866d1b7)
  • perform encryption of auth token in script (e6c282a)
  • process contact csvs server-side (1e6eb99)
  • reassign my replies button (6cfad65)
  • release all unhandled replies (e868dcb)
  • release replies on textable contacts only (ba37ba4)
  • remove unnecessary polling (6ae129a)
  • seach in overlap deletion (f2ac6a8)
  • shorten texter poll interval (2a9301c)
  • show hidden contact fields if super volunteer (9a2a066)
  • speed up overlap deletion (6faed80)
  • switch to file drop (e5ec8d7)
  • tear down kue on shutdown (ee29ce4)
  • treat 4 digit zips as 0 padded (61715b7)
  • update texter name in external assignment manager db cron job (ce09838)
  • upgrade memoredis (4c4a97b)
  • use empty mode if env var not present to bypass caching (b458879)
  • use function to cache plans (b265213)
  • use group by instead of many queries (08fdb71)
  • use sped up memoredis (924de74)

Bug Fixes

1.4.2 (2020-01-20)

Bug Fixes

  • add missing preferredTeamId argument (63fe02c)
  • avoid archived as bidning (a2e086a)
  • avoid union with for update skip locked (ff1b88c)
  • bail on submit if already submitting (b569c20)
  • bypass overly complex timezone evaluation (4acc8e7)
  • clarify that arg is unused (c28b2ea)
  • comment, simplify queryArgs (88f89af)
  • dont aggregate messaging services at send time (f724913)
  • dont change message status when escalating (c087da3)
  • dont fetch count of messaging services (424c0c7)
  • extend HTTP request timeout and log errors (ea2f593)
  • fix dataloader implementation (b996bff)
  • fix error when changing password (cd90ccc)
  • fix return type for returning("id") (8044e25)
  • fix service selection behavior (fa49557)
  • ignore the mocked ID added to CannedResponseInput (d473624)
  • include required numberAssigned property (b40f3c4)
  • index and query change necessary for search by tag (39ab3b3)
  • let delivered override error (fdbaa8a)
  • messages export blank (13fd5f2)
  • only update if not delivered (f0068a8)
  • order by messaged first (e9da7f7)
  • perform notify in separate delayed transaction (7c943d5)
  • pick json response property based on status (f768df4)
  • pr changes (fd064d8)
  • pr review cleanup (f630d99)
  • proper index use archived = false (365c50c)
  • remove campaign team requirement for custom escalation tags assignment pathway (9d26fe7)
  • rename to last updated at (bdf5f20)
  • replace final .save() calls (7d05190)
  • report anticipated autoassignment errors as successes (1593cd5)
  • return updated campaign from resolver (e279aee)
  • return values where appropriate (85e0d6c)
  • review requests (a6cc75f)
  • review requests (f1aa8bb)
  • scope opt-out check correctly (18c1c8e)
  • send message opt out query should respect global opt out env var toggle (9e8df70)
  • send null instead of empty string for contact zip code (4edb5a7)
  • setting assignment controls for first time (1fef9f2)
  • skip locked on link domain subquery (72a9498)
  • supply aws credentials explicitly (c430720)
  • syntax error on mark for second pass (9331b36)
  • use correct date comparison (8d36f45)
  • use correct table name for zip_code (4f454af)
  • use modal dialog (a8e5224)
  • use subshell (8b16415)
  • exports: handle error from stream creation (a78f73c)
  • external-assignment-request: dont hold transaction (de49e36)
  • message-review: remove contact name filter when text is empty (a37893c)
  • s3: use async method to support role-based auth (c32a400), closes aws/aws-sdk-js#2166
  • add count_left back to allCurrentAssignmentTargets (dba9580)
  • add escalate tag without confirmation steps (8654101)
  • add option to disable has unassigned contacts query (92a0223)
  • assemble numbers inbound message handling (b56e2b3)
  • at time zone unknown; docs: add conservative comment (19ff9fb)
  • check for null values not empty object (072495f)
  • contact is textable function (3848c0b)
  • contact_is_textable function (14c96fa)
  • contact_is_textable_now can return null (9546ab1)
  • correct sign direction on assignable_needs_message and reply (0eb28c7)
  • correct variable name (80064f3)
  • dont set max contacts in auto assign loop; default MAX_CONTACTS_PER_TEXTER of 500 (8415d02)
  • dont set sent after other message (0fc2bde)
  • drop count_left subqueries (42e96ca)
  • enable assignment request by supervolunteer (ff80750)
  • filter by organization correctly (1f15608)
  • fix syntax error (ab3eafc)
  • fix typo in opt-out query (ad913ef)
  • handle case where responsesString is undefined (68dadda)
  • include insert invite in dockerfile (49cd0ce)
  • include unmessaged contacts in message review queries (fe02fd4)
  • index campaign contact id (0e72b6e)
  • limit on update (effa5d0)
  • make dynamic assignment toggle truly controlled (b94dd46)
  • make requested changes for review (618cc77)
  • make test more robust to future DDL (48578c3)
  • order by coalesce (01ae8fa)
  • properly conservatively handle contacts with missing time zones (aa172b4)
  • return location (17ae3f6)
  • tweaks to backfill script and migrations non index option (c97fa09)
  • use is (not) distinct from (fce87da)
  • pg: catch missing knex<>reader swaps (58ff0ff)
  • fix ordering of view drops (23b8836)
  • get title of overlapping campaign (4ec68f6)
  • message locking from assignment queries (67a0c13)
  • move where clauses to join conditions (88f3dc7)
  • order by last messaged at rather than updated_at (3a65d70)
  • prevent empty tagConversation mutations (28c5956)
  • restrict contact upload to 75% of db pool size (9a1db5e)
  • scope bulkScriptUpdate to organization (bf6f0cb)
  • simple less than for texting hour end (3089c50)
  • standardize conversion from timezone name to UTC offset (6acbbc5)
  • use assignable contact views for assignLoop (168c85b)
  • knex: return count as number (8a24126)
  • local-login: expect user object not array of users (01b900b)
  • message-review: move key prop to correct location (5a5bbfa)
  • session: use passport for non-Auth0 logout (1f3c076)
  • switchboard: fix switchboard response handling (b7d607c)
  • tags: allow admins to bypass assignment requirement for tag management (e20df00)
  • tags: reset tags each time dialog is opened (c5f9041)
  • tags: update method name (0a41d79)
  • teams: fix campaign team comparison (553696e)
  • teams: remove unnecessary authRequired check (a4f1608)
  • teams: simplify team update logic (f9ffe30)
  • 0 index into null (9a97cfd)
  • account for fake organization team (2e926f2)
  • forms: prevent submit button from being full-width (1f1ba37)
  • add default background color (58451ca)
  • add message, sensible defaults for updated_at (99c0162)
  • allCurrentAssignmentTargets should show everyone else with first campaign without limit contraint (c7ee88c)
  • assignment queries organization scope (9adbfcf)
  • default now for migration (763b688)
  • dont allow non team members to get campaigns as a result of default (d6b99f7)
  • find a campaign that is potentially lower id for limited assignment (05c7510)
  • fix column names in down migration (03c0770)
  • fix the production path (e168bfa)
  • flexible return from myCurrentAssignmentTarget (4628f5e)
  • general assignment returning multiple results and final ordering not by id (4dd5b04)
  • global regex replace (bb1847a)
  • more to controlled component, allow setting null (0189cdf)
  • move to static imports instead of dynamic require (9c1aa8b)
  • my current assignment target selection - create priority column (e7e591e)
  • nulling and editing numbersApiKey (e262820)
  • organization scoped opt outs (f1348e1)
  • proper .then calls (b31a0b9)
  • rejecting assignment requests when general is disabled (e065e01)
  • requested permission changes (db24bb3)
  • return array from myCurrentAssignmentTargets (065bbfc)
  • return empty array rather than null (11bb011)
  • return full messaging service correctly (d9d4692)
  • return values from saveTeams (4f3dd7a)
  • slack team update - fully paginate slack channels (8afe903)
  • tag application blocking message sending (0e0188b)
  • tag editing (fd03409)
  • timezone issues (f9b8786)
  • unassigned contacts respects opt outs and escalation tag (5d0af87)
  • update cache with new values (bfc01d7)
  • use campaign texting hours instead of hardcoded 12 and 21 (a2bd049)
  • use idiomatic approach to state update (afe8287)
  • use null instead of unknown - at time zone null is null (fde17eb)
  • use raw archived = instead of knex binding (dcd40bb)
  • use SpokeSendStatus.Delivered (287f37d)
  • wrong number of vars for unsent assignments (3243bef)
  • apollo: remove buggy custom dataIdFromObject function (39e9504)
  • assignment: fix createdAt resolver (bdabaca)
  • assignment-requests: scope results to organization (ab7f156)
  • campaigns-list: add early return for All results case (666f5e4)
  • campaigns-list: skip limit/offset application for 'All' pageSize (fdbac58)
  • config: add ASSIGNMENT_COMPLETE_NOTIFICATION_URL (b946c75)
  • config: change STATIC_BASE_URL to str type (e245ce7)
  • config: create missing reference (76d473a)
  • config: fix envalid options (a54f2e2)
  • config: remove trailing dot in IP address (e6818a4)
  • config: switch config to process.env (25ecf33)
  • exports: order cte (a1dd25f)
  • lambda: load config file from correct location (9715086)
  • logging: fix config import (6d5c97d)
  • logging: fix rollbar setup (f9db668)
  • logging: remove errorCatcher (14b388c)
  • logging: remove log object complexity (655700a)
  • logging: remove unused client-side reference to server function (5ee63c3)
  • logging: use console for remaining client-side logs (e24f173)
  • metrics: pass custom StatsD to connect-datadog (5909678)
  • metrics: use standard connect-datadog library (fca59df)
  • teams: add column default (4c1f0ca)
  • teams: fetch organization's teams (2e00584)
  • teams: fix assignment_priority column name (9858387)
  • teams: manage teams and toggle independently (c87e1b0)
  • twilio: pass emtpy array rather than undefined to twilio (c9dde44)
  • util: return copy rather than mutating (5aed874)
  • utils: return offset (7574cf7)
  • add missing PasswordResetLink import (fdc3a0a)
  • apollo client singletown window reference (134655f)
  • assignment query (708fe7a)
  • assignment query subquery instead of left join (30660d0)
  • campaign contact tag.id (a98ff06)
  • construct and use RegEx correctly (794db0e)
  • invert incorrect boolean logic (426e6e0)
  • invite to organization creation (1205497)
  • order by old style (64ccf71)
  • question response in export (9c36f3a)
  • reduce scope of regex to specific domain (4e03e92)
  • reference knex correctly (630815d)
  • remove all config imports from client (6812062)
  • remove all config imports from client (843dc72)
  • remove apollo singleton from server (9cb939c)
  • remove order by (9cdb1d8)
  • requested pr changes (6b0719c)
  • return id field from insert and correct variable name. (95e75f1)
  • serve public dir if envvar is defined (07d9a0b)
  • set default of empty array for service_response (89dd361)
  • signing up with invite, button placement (41c6654)
  • signup (2f94693)
  • simplify renderIndex (2c1469c)
  • slack user team cron job (c776ce8)
  • standardize service_response (3909b0e)
  • test client correctly (ef86631)
  • tz.zone().utcOffset (077bbeb)
  • logging: use console everywhere (6f2348a)
  • unassign on escalate (7b49403)
  • use console instead of undefined log (6d45fb6)
  • use independent webpack envalid config file (745a5ae)
  • message-review: request userId when sending admin message (fb5d036)
  • tags: create new tagsFilter object (57efc8f)
  • update fakeservice sendMessage signature (6494627)
  • update numbers client usage (84815c2)
  • use reject within AuthHasher callbacks (5534a8a)
  • view definition (migrations already run in production) (d804570)
  • tags: reset tags every time the selection dialog is opened (e62a584)
  • tags: wrap PG lower function in knex.raw (d7ece37)
  • teams: add onDelete statements (76e3e0d)
  • teams: apply code review suggestions (04faf4a)
  • user: fix UserEdit required fields (7dad66e)
  • user: prevent password change for non-local login (2eda21f)
  • switch ordering of moment.diff arguments (e313914)
  • trim leading/trailing spaces in custom fields. (1d7fd94)
  • use timezone-aware logic everywhere (5d55156)

Features

  • add additional logging for assemble numbers (4fe865b)
  • add archived=false to assignment views (67818bc)
  • add campaign title to texter todo (132a433), closes #355
  • add client-side authentication check (3630383)
  • add early return if there are no cells to assign (06ba3d1)
  • add error handling for editCampaign (303ff8a)
  • add fine-grained control of notifications (b040b85)
  • add script to sync all active and recent campaigns (c6fada4)
  • add support for invite payloads (9d2aa57)
  • add team columns (ea9c177)
  • add timeouts to outbound http requests (4bdd699)
  • allow texters to choose assignment (de61f0b)
  • apply tags on skip reply (1180e95)
  • assign messaging service in sendMessage resolver (ce1a8bb)
  • cache authorization and some campaign fetches (3debbb3)
  • change team assignment column name; add AssignmentTarget.enabled (bb04b09)
  • contact level time zone assignment (17fe36c)
  • custom escalation tags gui (2bf21cf)
  • display authentication errors (a276099)
  • display authentication errors (8fcd440)
  • drop column should be same as up column; new team based assignment queries (12b62c9)
  • expose new team properties (dc45103)
  • filter by tags in incoming message review (2338794)
  • formalize enforced texting hours (fc4b90d)
  • generalize all message service assignment functionality (278d2a6)
  • implement unmarkforsecondpass and deleteneedsmessage (e08453c)
  • improve assignment request error handling (31c2fcf)
  • include archived condition on incoming message review query (6475be1)
  • include texter email address in search UI/params (d0584ea)
  • include timezone among campaign fields copied (9d1c48f)
  • increase password reset period to 1 day (5ab7912)
  • move assignment control flow to its own admin page (c7366d2)
  • move texting hours section to just after basics (95c7752)
  • notify client when Spoke is out of date (2811beb)
  • optimize search by texter (494b891)
  • order by campaign id, not due date (e41390a)
  • partial todos index (1a08628)
  • per contact messaging service types (39baad1)
  • refactor assignment queries to respect team_escalation_tags (9dad5f0)
  • search by unassigned (null texter) (3b15869)
  • show message.created_at if exists above campaign_contact.updated_at (741a2da)
  • show teams on campaign list (f95c1c4)
  • silence expected errors (f991105)
  • store md5 hash of script before variable substitution (aad419b)
  • support passing knex session (6f5df84)
  • support read replicas for a few key queries (6ea8a89)
  • support soft delete of tags view trigger and view (105419a)
  • support team-scoped assignment complete notifications (99ca099)
  • update knex migration signatures (cca0015)
  • update mutation to take multiple teams (6890f25)
  • update password reset text (a31f400)
  • update UI for new fields (bea031f)
  • use case insensitive search (f619144)
  • use cte style query chains for custom escalation tags assignment path (4ab83d6)
  • assemble-numbers: add assemble-numbers sending service (62b5ccd)
  • auth: limit password reset to local login (1abd2d4)
  • export: create export drivers for AWS and GCS (409049c)
  • exports: create export driver for GCS w/ HMAC auth (3ba3b0c)
  • exports: disable GCS with HMAC (4c5ea89)
  • exports: export texter information (510df6b)
  • exports: flesh out hmac signing for GCS (fd434bf)
  • exports: support mulitple export drivers (5e49d0d)
  • graphql: add mocks only in non-production environments (c34e8fb)
  • graphql: disable batched graphql requests (b537608)
  • graphql: restrict graphiql to non-production env (3808a21)
  • immutable-question-response: migration (b889d82)
  • local-login: capture login modes in enum (27714ea)
  • logging: add timestamps to log format (6d8b8b8)
  • logging: enable Rollbar the right way (0e33448)
  • logging: switch to connect-datadog-graphql (4bc517d)
  • logging: use console for client-side logging (ef091df)
  • logging: use most verbose logging level in development (5597462)
  • logging: use winston for server-side logging (042bf09)
  • message-review: allow admin sending to unassigned contact (0431022)
  • message-sending: add service_type column to messaging_service table (9ab6953)
  • monitoring: add healthcheck endpoint (aa91aa5)
  • pg: use reader for conversations query (5925c0a)
  • pg: use reader pool everywhere (f32d056)
  • pg: use trx over .transacting (ec726e6)
  • teams: add Assignment Request Controls component (d1275bf)
  • teams: add campaign<->team association (3be2c8e)
  • teams: add CrUD mutations for teams (09908e5)
  • teams: add organization<->team association (ac4f814)
  • teams: add team resolver (688ad29)
  • teams: add team selection to campaign edit page (4e35ad0)
  • teams: add teams migration (8002862)
  • teams: add UI for managing teams (72e0b6e)
  • teams: allow specifying teams to campaign (ffdfb32)
  • teams: clarify wording of instructions (26b9712)
  • teams: include type in current assignment HUD (fc81eb3)
  • ux: add overdue tag to overdue campaigns (2f07de9)
  • ux: add overdue warning to campaign edit page (970caa4)
  • ux: show overdue warning on stats page (cb7261f)
  • add currentAssignmentTargets and update campaign list ui (c2a6bdc)
  • allow opt-out without assignment ID (4d83c60)
  • cron job to sync teams with slack channel memberships (9701d1e)
  • option to apply tags without sending message (5a93d84)
  • upgrade assemble-numbers-client (300b931)
  • use DISABLE_TEXTER_NOTIFICATIONS to disable texter notifications (77e8f15)
  • use LocalAuthError type (2d7e0a3)
  • sweeping: add previous/next conversation navigation (def7c34)
  • tag: add tag management to sweeper view (22838b9)
  • tags: add reusable TagSelector component (ab798c0)
  • tags: handle tagConversation error (c3b3253)
  • teams: add member management page (e09e43d)
  • teams: add team member management mutations (a5bdf82)
  • teams: add team root query (c926d1a)
  • twilio: add defensive fix for null characters in database (2cefe70)
  • ux: add overflow menu to mobile texter view (997ee98)
  • remove text form block from settings (8d96db6)
  • remove updated_at calls from code (02f5e6b)
  • universal trigger based updated_at (6d4563a)
  • use LocalAuthError type (45f7752)
  • use myCurrentAssignmentTarget for form controls (b33ca1f)
  • write and use myAssignmentTarget for giveUserMoreTexts and form display decisions (d6ac7e2)
  • teams: add user<->team association (63c7e76)
  • teams: use live campaign values (1a2c145)
  • default assignment priority of 500 (19e1810)
  • open tags selector on focus (58065b3)
  • persist tag state between dialog opens (93d7f49)
  • separate out escalate tag (6f23b78)
  • config: add config file (3f4233a)
  • config: export separate client and server config objects (773d9b8)
  • config: migrate knex config (5e64d2a)
  • config: use envalid config everywhere (cff9e2a)
  • config: use envalid config for webpack (145899f)
  • exports: allow alternate AWS endpoint (df7b305)
  • tags: add ability to support tag colors in the future (5f0bfd3)
  • tags: add additional fields (08e7514)
  • tags: add admin UI for editing tags (eb40bef)
  • tags: add columns (be1d1b5)
  • tags: add error dialog for saveTag (0d15163)
  • tags: add tag management UI (d11978f)
  • tags: remove separate message editing field for tags (d61b3f3)
  • tags: switch to tagConversation mutation (81d5c88)
  • tags: update sendMessage payload for tags (db448f1)
  • add ability to set organization.features.numbersApiKey via organization settings (10594b1)
  • add datadog support via dogstatsd (df0c7df)
  • add release stage to Heroku Procfile (bbf004e)
  • cosmetic changes for local login. (9d44d65), closes MoveOnOrg/Spoke#1059
  • filter landlines on upload if numbersApiKey defined (5fcb6df)
  • if percent is more than 100 on upload, we are filtering (f044515)
  • implement local login (80ba1b5), closes MoveOnOrg/Spoke#658
  • include tags as list of titles in export (70ef3a1)
  • lock contacts tagged with tags.is_assignable = f out of assignment (46a54f5)
  • make incoming message review and esclated conversations review use tags (a50721e)
  • migration script (87d0160)
  • remove escalationUserId from resolvers (e793bd3)
  • tags: add GraphQL queries and mutations for tags (ca6d0e2)
  • tags: add migration for tags (ede1fba)
  • tags: create default tags during organization creation (8e90fc8)
  • tags: resolve naming collision for tags properties (1e88ef7)
  • reject numbers api keys with * (4cdd30a)
  • remove migration management (d2d0659)
  • support running knex from the command line (4a3149b)
  • use knex-style database seeding (8e15dd2)

Reverts

  • Revert "fix: truthy check on array" (fb8f52a)
  • revert pull request #265 - feat/no-mocks-in-prod (c5ec88e)
  • Revert "feat: add rollbar version" (e0420e6)
  • Revert "build(docker): include git in Docker image" (a089447)
  • Revert "fix(docker): account for git potentially being unavailable" (ad8f516)
  • Revert "Update Twilio TwiML usage." (1df8e51)
  • Revert "Sort messaging service SIDs, not the env var keys." (241a0f7)
  • Revert "Add field for specifying reply age." (6673cf8)
  • Revert "just return true for now" (73bd991)
  • Revert "Revert "Moveon main plus reassign all plus message review optout plus set message validity"" (01f7e2e)
  • Revert "Ability to return roles from campaign.texters" (c7713cf)
  • Revert "Avoid error if no campaign is found" (8a7aa7c)
  • Revert "Revert "Upgrade webpack and related deps to latest."" (d78c9d2)
  • Revert "Upgrade webpack and related deps to latest." (7befef7)
  • Revert "Removes fixed height for message fields for smaller screens" (2c887e5)
  • Revert "Revert "adds sqs message processing function"" (492e89c)
  • Revert "dependencies" (cefc3c9)
  • Revert "some ideas for how to mitigate campaign-contact QuestionResponses resolver" (72e5be6)
  • Revert "A few fixes for not finding organization settings. Revert after mig." (b2fd454)
  • Revert "One more commit to revert" (efb2b8a)
  • Revert "Hide sections and don't use unmigrated fields yet. Revert after migration." (07976c3)
  • Revert "Comment out making fields required. Revert after migration" (2e8b012)
  • Revert "Commit #2 to revert post-migration" (7020f0e), closes #2
  • Revert "Commit for deploy - revert after migration" (be9a62e)
  • Revert "Temporarily allow admin access instead of owner access -- revert after migration" (07edbfc)

v1.4.1

August 2018: Version 1.4.1

  • This version fixes bugs found in 1.4 including a deployment bug.

v1.4

This release includes many optimizations, new features and more tests! We've fixed outstanding bugs, added more administrative functionality and worked on the texter experience. We've also introduced a new testing suite and redis caching capabilities. Over the next couple months, we intend to add more testing and continue to work on scaling.

Note - we will have a new release in the next few weeks and switch to a shorter release cycle in the next few months. Please upgrade your instance and let us know if you find any bugs or have questions!

July 2018: Version 1.4

  • A 'Skipped Messages' section for texters to allow access to previously skipped conversations. Skipped conversations can be 'reopened' and filter back into the 'replies' view.
  • A 'Message Review' board for administrators to allow message reassignment to different texters. Administrators also have the ability to see more incoming messages than previous.
  • The ability to mark contacts as opted out without sending a message.
  • Selenium end to end testing with Sauce Labs integration.
  • Redis caching capabilities including caching user's authentication status.
  • Updates to documentation for AK integration, popular queries, and email and data exporting integration.
  • Bug fixes around owner, admin and superadmin permissions when attempting to text, timezone handling, permission issues on admin dashboard.
  • Update to our community guidelines.

Thanks go to all our contributors for this release including: azuzunaga, bchrobot, bdatkins, cp4r3z, codygordon, eXrump, harpojaeger, joemcl, lperson, mathemagica, shakalee14,

v1.3

Two major themes that we are focusing on this year are improving integrations and scaling. This release begins that work with support for MailGun notifications and Revere subscriptions. In order to scale work-flows, we have added a new SuperVolunteer position and now allow texters to update their own information.

Over the next couple months, we intend to integrate with more outside systems and we will also be adding significant work around scaling the system to support much larger volumes and participants. We will also be continuing to add more automated tests to scale participation. All of that is to make sure that the growing community can keep adding enhancements yourself -- please jump in on our issues page to either implement something or file an issue on something you want Spoke to do!

Please upgrade your instance and let us know if you encounter any issues!

April 2018: Version 1.3

  • A 'Past Messages' section for Texters to allow access to previous conversations before a reply comes back. This feature helps cases where someone accidentally clicked a button or wants to follow-up with requested information.
  • Texters can update their name, email and other information from the menu. Admins can update texter info from the console
  • A new SuperVolunteer role, which allows a non-admin to update assignments, and some other tasks
  • Added MailGun support
  • Frontend React tests!
  • Added an action handler to automatically subscribe to a Revere SMS list -- see Revere integration instructions
  • Fixed some bugs:
    • The texter menu now has a home button
    • The zipcode table was too big to fit in a free Heroku database
    • Some login issues were fixed and documentation was improved
    • Improved contact load times for texter screen

Thanks go to all our contributors for this release including: ben-pr-p, harpojaeger, lperson, shakalee14, schuyler1d, zluo16, jparkrr, JeremyParker, hiemanshu, Dayologic, hi0ctane, sandramchung, sreynen, mathemagica

v1.2

January 2018: Version 1.2 is our second release since MoveOn has adopted Spoke. We are committed to fixing bugs, adding new features and making this project as nimble as possible. For this release, we've included changes from GetUp, updated certain dependencies, updated Auth0 integration, added user editing capabilities for texters and admins and continued to add outside integration points with outside CRMs. Please continue to add and work on our growing issues list. We have also switched from master => main as a new naming convention for the most stable/default branch.

We've worked on a lot, but some critical developments to highlight include:

  • Adds dynamic assignment functionality for texters
  • Adds user editing capabilities for texters and administrators
  • Adds support for customized styling for campaigns
  • Adds ActionKit integration for event sign up and documentation
  • Adds support for multi-media images in outgoing texts (mms)
  • Adds support for campaign script editing on live campaigns
  • Moved to Prop-Types library, upgraded Webpack and other development dependencies
  • Adds Code Climate test integration to monitor test coverage
  • Adds opt out count for a campaign to admin dashboard stats
  • Adds free Heroku deployment setup
  • Adds more automated tests

Thanks go to to all our contributors for this release including: jmcarp, hiemanshu, lperson, jparkrr, jamesr2323, benmort, ben-pr-p, lady3bean, schuyler1d, shakalee14, sreynen, mathemagica

v1.1

October 2017: Version 1.1 is our first release since MoveOn has been using Spoke successfully in production. We are committed to making this an open-source project used and developed by the wider progressive tech community to advance our political goals. Part of our work has been to make that transparent. Besides this public repository, please help with our growing issues list, including those marked easy.

But of course, we've also done some actual development work! We've fixed a ton of bugs, but here are some highlights for this release:

  • Adds a passing test framework
  • Resolves many bugs related to saving and updating a Campaign for admins
  • Improves the Texter interface (better reply visibility, especially on mobile) along with sending on <Enter>
  • Adds a Deploy to Heroku button for easier first-time deployments
  • Documented how to deploy on Amazon AWS Lambda
  • Migrated from a RethinkDB backend to a Knex.js backend (we recommend use with postgresql database)
  • Improved Spoke's security

Thanks go to to all our contributors including: anasauce, hiemanshu, mathemagica, sandramchung, schuyler1d, shakalee14, sreynen