- Update test database to latest schema
- Update to latest goflow which adds locale field to MsgOut
- Improve error reporting when courier call fails
- Retry messages which fail to queue to courier
- Update deps including new goflow which adds legacy_vars issues
- Fix test and cleanup msg status constants
- Add basic auth for Elastic
- Test with only redis 6.2
- Don't filter labels by label_type which is being removed
- Send msg id to fetch-attachments endpoint and clean up flows.MsgID vs models.MsgID
- Revert "Remove rocketchat as ticketer"
- Don't include unavailable attachments in flows but do save them
- Set server idle timeout to 90 seconds
- Test against redis 6.2 and postgres 14
- Add workaround to contact resolve endpoint to deal with invalid phone numbers
- Update to latest gocommon and goflow
- Remove rocketchat as ticketer
- Update deps
- Remove legacy functionality to look for missed call trigger if there's no incoming call trigger
- Update to latest goflow
- Update to latest goflow
- Update to latest goflow
- Remove some leftover references to topups
- Remove topups
- Set is_active=TRUE on new broadcasts
- Update to latest goflow
- Remove unused created_on field from msg events
- Rename media config vars
- Update to latest gocommon
- Add channel removed failed reason for msgs
- Call courier endpoint to fetch attachments if they're raw URLs
- Move interrupt_channel task into tasks/interrupts
- Tweak msg retries to ignore deleted channels
- Remove no longer used channels option from interrupt_sessions task
- Update to latest goflow
- Add interrupt channel task
- If starting a message flow from an ivr trigger, send reject response
- Update to latest goflow which changes expirations for dial waits
- Add support for time limits on dial waits
- Rework message events to use channel UUID and include channel type
- Simplify getting active call count
- Allow incoming call triggers to take message flows
- Switch to new ivr_call table
- Update test database
- Rename channelconnection to call
- Don't read or write connection_type
- Attach channel logs to channel connections
- Add redaction to IVR channel logging
- Use MsgOut.UnsendableReason instead of checking contact status
- Restructure channel logs like how they are in courier
- Update to latest goflow and gocommon
- Bump default steps per sprint limit to 200
- Use go 1.19
- Add channel log UUID field
- Add codecov token to ci.yml
- Update to latest goflow and gocommon
- Update to latest gocommon
- Update to latest gocommon and goflow
- Save IVR channel logs in new format
- Upgrade dependencies
- Update to latest goflow and gocommon
- Add support for AWS Cred Chains
- Add test utility to make it easier to test with imported flows
- Failed sessions should be saved with ended_on set
- Add endpoint to do synchronous interrupt of a single contact
- Update to latest goflow
- Set opened_by_id on the open ticket event as well as the ticket itself
- Add Ticket.opened_by and opened_in and set when opening tickets
- Update to latest goflow with support for ticket modifier
- Update to latest goflow which removes sessions from engine services
- Update to latest goflow
- Update README
- Use proper query construction for preview_start endpoint and return search errors for invalid user queries
- Update dependencies
- Log version at startup
- Use new orgmembership table to load users
- Update to latest goflow
- Update to latest goflow and simplify code for exiting session runs
- Add support for excluding contacts already in a flow in start_session actions
- Don't blow up in msg_created handler if flow has been deleted
- Use analytics package from gocommon instead of librato directly
- Update to latest goflow
- Simplify BroadcastBatch
- Record first-reply timings for tickets
- Add arm64 as a build target
- Update to latest goflow which fixes contact query bug
- Update to latest goflow which fixes contact query simplification
- Record ticket daily counts when opening, assigning and replying to tickets
- Update to latest gocommon, phonenumbers, jsonparser
- Update to go 1.18 and use some generics
- Rework flow/preview_start endpoint to take a number of days since last seen on
- Update to latest goflow that has fix for whatsapp template selection
- Changes to preview_start endpoint - 1) rename count to total to match other search endpoints, 2) add query inspection metadata to preview_start endpoint response 3) switch to UUIDs for contacts and groups
- Move search into its own package and add more tests
- Add endpoint to generate a flow start preview
- Use new contactfield.name and is_system fields
- Update to latest goflow and start using httpx.DetectContentType
- Update modified_on for flow history changes by handling flow entered and sprint ended events
- Update to latest goflow which requires mapping groups and flows to ids for ES queries
- Fix unstopping of contacts who message in
- ContactGroup.group_type can no longer be 'U'
- Clear session timeout if timeout resume rejected by wait
- Update golang.org/x/sys
- Add is_system to contact groups, filter groups by group_type = M|Q|U
- Simplify cron jobs and add them to the main mailroom waitgroup
- Allow expirations and timeouts to resume sessions for stopped, blocked and archived contacts
- Messages to stopped, blocked or archived contacts should immediately fail
- Update to latest goflow
- Replace last usages of old locker code
- Cleanup some SQL variables
- Batch calls to delete event fires
- Fix resend reponses when not all messages could be resent
- Improve logging on session resume
- Fix example session storage path
- Use redis 5.x for CI
- Improve configuration section of README
- Rework resending to fail messages with no destination
- Tweak log messages for expirations and timeouts
- Don't try to resume expired session if contact isn't active
- Improve logging of expirations task and fix logging on ticket opening
- CI with latest go 1.17.x
- Add missing config options to README
- Update to latest goflow
- Remove references to flows_flowrun.exit_type and is_active which are no longer used
- Flow starts from start_session actions in flows should only match single contacts
- Fix panic when resuming IVR flow
- When fetching flows by name, prefer latest saved
- Add support for querying by flow
- Implement setting contact.current_flow_id as pseudo event and hook
- Change StartOption fields to match excludes that we use in RP UI
- Skipping or interrupting waiting sessions should happen across all flow types
- Update to latest goflow that fixes group removal on contact stop and resuming with wrong type of resume
- Resolve endpoint should return error if given invalid URN
- If handling timed event finds different session, don't fail event session as it should have already been interrupted
- Update to goflow 0.149.1
- Add _import_row to contact spec so that we can reliably generate import errors with row numbers
- Remove expires_on, parent_uuid and connection_id fields from FlowRun
- Use sessions only for voice session expiration
- FlowSession.wait_resume_on_expire now non-null and don't set to true for IVR flows
- Update modified_on for contacts in batches of 100
- Rework expiring messaging sessions to be session based
- Set wait fields on sessions for dial waits as well
- Create completed sessions with wait_resume_on_expire = false
- Reduce exit sessions batch size to 100
- Clear contact.current_flow_id when exiting sessions
- Rework expirations to use ExitSessions
- Consolidate how we interrupt sessions
- Tweak mailroom shutdown to only stop ES client if there is one
- Remove deprecated fields on search endpoint
- Include flow reference when queuing messages
- Tweak coureier payload to not include unused fields
- Update to latest goflow (fixes allowing bad URNs in start_session actions and adds @trigger.campaign)
- Commit modified_on changes outside of transaction
- Include redis stats in analytics cron job
- Update wait_resume_on_expire on session writes
- Always read run status instead of is_active
- Rename Session.TimeoutOn to WaitTimeoutOn
- Add flow_id to msg and record for flow messages
- Add testdata functions for testing campaigns and events
- Use models.FireID consistently
- Replace broken redigo dep version and anything that was depending on it
- Simplify how we queue event fire tasks and improve logging
- Update to latest gocommon
- Stop writing events on flow runs
- Switch to dbutil package in gocommon
- Always exclude router arguments from PO file extraction
- Session.CurrentFlowID whould be cleared when session exits
- Start writing FlowSession.wait_expires_on
- Update to latest goflow which removes activated waits
- Clamp flow expiration values to valid ranges when loading flows
- Replace redisx package with new dependency
- Update test database to use big ids for flow run and session ids
- Move session storage mode to the runtime.Config instead of an org config value
- Update to latest gocommon to get instagram scheme
- Update to latest gocommon and goflow to get fix for random.IntN concurrency
- Update to latest goflow
- Fix not logging details of query errors
- CI with go 1.17.5
- Include segments in simulation responses
- Record recent contacts for all segments
- Allow cron jobs to declare that they can run on all instances at same time - needed for analytics job
- Write failed messages when missing channel or URNs
- Switch to redisx.Locker for cron job locking
- Update goflow
- Rename redisx structs and remove legacy support from IntervalSet
- Update goflow
- Use new key format with redisx.Marker but also use legacy key format for backwards compatibility
- Update to latest goflow
- Add failed_reason to msg and set when failing messages due to looping or org suspension
- Simplify cron functions by not passing lock name and value which aren't used
- Stop writing msgs_msg.connection_id
- Stop writing msgs_msg.response_to
- Replace trackers with series to determine unhealthy webhooks
- Correct use of KEYS vs ARGV in redisx scripts
- Rework how we create outgoing messages, and fix retries of high priority messages
- Move msg level loop detection from courier
- Add imports for missing task packages
- Add redisx.Cacher util
- Don't include response_to_id in courier payloads
- Add logging for ending webhook incidents
- Update sessions and runs in batches when exiting
- Fix handling of add label actions after msg resumes in IVR flows
- Add cron job to end webhook incidents when nodes are no longer unhealthy
- Re-add new locker code but this time don't let locking code hold redis connections for any length of time
- Create incident once org has had unhealthy webhooks for 20 minutes
- Revert "Rework locker code for reusablity"
- Pin to go 1.17.2
- Rework redis marker and locker code for reusablity
- Test with Redis 3.2.4
- Add util class to track the state of something in redis over a recent time period
- Remove unneeded check for RP's celery task to retry messages
- Add logging to msg retry task
- Add task to retry errored messages
- Remove notification.channel_id
- Update to latest goflow with expression changes
- Make LUA script to queue messages to courier easier to understand
- Explicitly exclude msg fields from marshalling that courier doesn't use
- Remove unused code for looking up msgs by UUID
- Update to latest goflow
- Tweak README
- Update to latest goflow which adds reverse function
- Change default resumes per session limit from 500 to 250
- Update to latest goflow
- Update to latest goflow which adds sort function
- Add config option for maximum resumes per session
- Add notification.email_status
- Update to latest goflow which simplifies contactql queries after parsing
- Load contacts for flow starts from readonly database
- CI testing on PG12 and 13
- Look for From param if Caller param not found in incoming IVR call request
- Update to latest gocommon and go 1.17
- Drop ticket.subject
- Remove no longer used FlowStart.CreatedBy
- Tweak mailroom startup to show warning if no distinct readonly DB configured
- Switch to readonly database for asset loading
- Add support for READONLY_DB config setting that opens a new readonly database connection
- Finish the runtime.Runtime refactor
- Refactor more code to use runtime.Runtime instead of passing db instances and using the global config
- Update to latest goflow with doc fixes
- Recalculate dynamic groups after closing and reopening tickets
- Stop writing webhook results
- Fix handling webhook called events on resumes
- Add new fields to HTTPLog and save for webhook called events
- Stop writing ticket subjects
- Add warning log entry when task takes longer than 1 minute
- Update to latest goflow (fixes word_slice)
- Update to latest goflow
- Add notifications for contact imports and set contact import status
- Fix IVR for orgs using S3 sessions
- Ticket notifications (opened and activity)
- Add force param to close tickets endpoint to let us ignore errors on external ticket service when removing a ticketer
- Support Spanish status names passed back from Zendesk targets
- Read sessions from db or s3 depending on whether output_url is set
- Don't write output in db when writing to s3
- Add endpoint to change ticket topic
- Update to latest goflow/gocommon/phonenumbers
- Update to latest goflow to get ticket topic changes there
- Add ticket topics
- Switch to synchronous answering machine detection for Twilio channels
- Make IVR machine detection an option in channel config
- Stop reading/writing channelconnection.retry_count so that it can be dropped
- Don't let IVR status callbacks overwrite error status (otherwise calls aren't retried)
- Revert previous to query to fetch calls to retry so we only look as statuses Q and E
- Add ChannelConnection.errorReason and start populating
- Reinstate channel connection error_count and write it
- Fix retrying of calls where answering machine was detected
- Implement asynchronous AMD for Twilio IVR
- Enable answering machine detection for Vonage IVR
- Fix requests to twilio to start calls with machine detection
- Add support for answering machine detection on Twilio calls
- Update to latest goflow
- Use new config keys for LUIS classifiers
- Switch from abandoned dgrijalva/jwt-go to golang-jwt/jwt
- Update to latest goflow (adds support for queries on tickets, fixes LUIS classifiers)
- Update to latest goflow and add parse_only as param to parse_query to allow us to extract field dependencies even when they don't yet exist in the database
- Fix tests broken by recent db changes to msgs and broadcasts
- Populate ticket_count when creating new contacts
- Actually save IVR messages with sent_on set
- Update contact modified_on after populate dynamic group task
- Update to latest goflow
- Set sent_on for outgoing IVR messages
- Support flow config ivr_retry values of -1 meaning no retry
- Log error if marking event fire as fired fails
- Update to latest goflow and gocommon
- Fix triggering new IVR flow from a simulation resume so that it includes connection to test channel
- Latest goflow with latest localization
- Update to latest goflow to get fixes for nulls in webhook responses
- Add new error type for failed SQL queries
- move s3 session config error to a warning for the time being since not strictly required yet
- Support ticket open events with assignees
- Add endpoints for ticket assignment and adding notes
- Update to latest goflow
- Include args in BulkQuery error output
- Return more SQL when BulkQuery errors
- Update to latest goflow/gocommon
- Fix handling of inbox messages to also update open tickets
- Stop writing broadcast.is_active which is now nullable
- Update to latest goflow
- Update to latest goflow
- Load org users as assets and use for ticket assignees and manual trigger users
- Add ticket to broadcasts and update last_activity_on after creating messages for a broadcast with a ticket
- Add support for exclusion groups on scheduled triggers
- Update ticket last_activity_on when opening/closing and for incoming messages
- Set contact_id when creating new tickets events
- Update to latest goflow and which no longer takes default_language
- Have our session filename lead with timestamp so other objects can exist in contact dirs
- Parse URL to get path out for sessions
- Use s3 session prefix when building s3 paths, default to /
- Throw error upwards if we have no DB backdown
- Read session files from storage when org configured to do so
- Ignore contact tickets on ticketers which have been deleted
- Add ticket closed triggers and use to handle close ticket events
- Add ticket events and insert when opening/closing/reopening tickets
- Fix test which modifies org
- Update to latest goflow as last release was broken
- Update to latest goflow
- Write sessions to s3 on resumes (optionally)
- Add support for exclusion groups on triggers and generalize trigger matching
- Introduce runtime.Runtime
- Simplify testdata functions
- Various fixes from linter
- Simplify use of test contacts in handler tests
- Move test constants out of models package
- Remove reduntant resend_msgs task
- Update to latest goflow (legacy_extra is no longer an issue)
- Make Msg.next_attempt nullable
- Add web endpoint for msg resends so they can be a synchronous operation
- Expose open tickets as @contact.tickets
- Fix queueing of resent messages to courier and improve testing of queueing
- Update to latest goflow
- Add WA template translation namespace
- Add task to resend messages
- Update to latest goflow
- Update test database and rename Nexmo to Vonage
- Update to latest goflow
- Update to latest goflow
- Update to latest goflow
- Smarter loading for cache misses on org assets
- Update to latest goflow
- Simplify caching, keep orgs for 5s, reload everything
- Update to latest goflow
- Fail expirations that are no longer the active session
- Update to latest goflow with completed es and pt-BR translations
- Update to latest goflow
- use SaveRequest() so our ivr logs always have bodies
- 6.2.0 Release Candidate
- 6.2.0 Release Candidate
- Fix campaign even firing for background flows
- IVR forwards for Nexmo and Twilio
- Update to latest goflow
- Rename tickets/internal package
- Should match referral trigger with case insensitive
- Update to latest goflow
- Add link local ips to default disallowed networks config
- Update phonenumbers lib
- Decrease locations cache timeout to 1 minute
- Support ElasticSearch 7.2 (backwards incompatible to Elastic 6.*)
- Update to latest goflow
- Update to latest goflow v0.110.0
- Update to latest goflow v0.109.4
- Simplify FCM client code
- Fix updating message status when id column is bigint
- Ensure courier messages are always queued for a single contact
- Fix not triggering FCM syncs for broadcasts and ticket reply messages
- Update to goflow v0.109.0
- Update to latest goflow 0.108.0
- Use background instead of passive
- Update to latest goflow v0.107.2
- Add support for passive flows
- Update to goflow v0.107.1
- Variable timeout for fire campaign task
- Fix misreporting created contacts as updated during imports
- Ensure field and group assets used for imports are fresh
- Add support for internal type ticketers
- Update to latest goflow v0.106.3
- Configure engine to disallow HTTP requests to private networks
- correct name for completion.json in release
- pin goreleaser, explicit inclusion of /docs/*, completions and functions
- add log when queuing to courier
- Update test database
- Add ticket service for Rocket.Chat
- Update to latest goflow v0.106.1
- Prevent importing invalid URNs during import
- Update to latest goflow v0.106.0
- Don't write to flows_flowrun.timeout_on so it can be dropped
- Update to goflow v0.105.5
- Fix input_labels_added event handling when session input ID isn't set
- Always request Mp3 files from Twilio IVR recordings
- Add support for outgoing mailgun ticket attachments
- Incoming attachments for mailgun ticketers
- Update to goflow v0.105.4
- Fix cloning of flows during simulation so that ignore keyword triggers is cloned too
- Update to goflow v0.105.3 to get support for arabic numerals in has_number tests
- Update to latest goflow to get for normalizing numbers from The Gambia
- Enable retrying on the elastic client
- Reorganization of core packages
- Fix race condition when bulk getting/creating contacts
- Add contact/resolve endpoint to assist with channel events still handled in RP
- If a flow start task creates new contacts, save those back to the start
- Add mockable DB to enable testing database errors
- CreateContact also should do lookup before trying to create new contact with URNs
- Imports 2.0
- Pass org from the base task to task structs to remove need for duplicating it in the task body
- Add SessionStatus to messages queued to courier
- Make defining new task types easier and drier
- Better locking when handling
- Fix and simplify creation of channel logs in IVR handlers
- Update to latest goflow v0.104.1
- Simplify test-smtp cmd using smtpx package
- Create new dbutil package with generic DB stuff
- Add task to calculate fires for new campaign event
- Fix incoming attachments from Zendesk
- Update to latest goflow
- Empty contact names and languages should be saved as NULL
- Delete no longer used utils/celery package
- Update to latest goflow
- Add support for incoming attachments on ticketing services
- Use status for elastic queries that need to filter out non-active contacts
- Add support for excluding contacts from searches by ids
- Rework utils/storage to be generic and moveable to gocommon
- Add create contact endpoint which uses modifiers to add fields and groups to contacts
- Rework contact creation functions to support creation with multiple URNs
- Stop writing is_blocked and is_stopped
- Read from contact.status intead of is_stopped/is_blocked
- Implement saving of zendesk ticket files as attachments
- Abstract S3 code so tests and dev envs can use file storage
- Fix inserting channel logs and add test
- Always write contact.status when writing is_blocked or is_stopped
- Convert IVR code to use goflow's httpx package
- Tweak goreleaser config to include subdirectories inside docs folder
- Update to goflow v0.101.2
- Bundle localized goflow docs in release
- Recalculate event fires for campaign events based on last_seen_on
- Update to latest goflow v0.100.0
- Remove protection for overwriting last_seen_on with older values
- Update last_seen_on when handling certain channel events
- Update last_seen_on when we receive a message from a contact
- Fail outgoing messages for suspended orgs
- Refresh groups as well as fields for contact query parsing
- Update to goflow v0.99.0
- Update to latest goflow v0.98.0
- Render rich errors with code and extra field
- Update to latest goflow v0.96.0
- Add loop protection by passing session history to new flow action triggers
- Set user and origin on manual triggers
- Switch to trigger builders
- expire runs that have no session, just warn while doing so
- 5.6.0 Release Candidate
- Varible naming consistency
- Fix reading of modifiers so always ignore modifier that becomes noop
- Sead country from templates
- Ignore missing assets when reading modifiers
- Fail flow starts which can't be started
- Update to latest goflow and add tests for field modifiers
- Fix detaching URNs
- Update to latest goflow v0.93.0
- When blocking contacts archive any triggers which only apply to them
- Messages without topups should be queued
- Continue handling as normal for suspended orgs
- Org being suspended should stop message handling
- Make decrementing org credit optional
- Return query inspection results as new metadata field in responses
- Update to latest goflow v0.92.0
- Don't do any decoration of email ticket subjects
- Allow searching by UUID, as well != matches on ID and UUID
- Update to latest goflow v0.91.1 to fix clearing fields
- Maybe fix intermittently failing test
- Update to goflow v0.89.0
- Add endpoint to change a flow language
- Tickets fixes and improvements
- Update to goflow v0.87.0
- Send email when reopening mailgun ticket
- Implement closing of tickets in zendesk from mailroom
- Send close notification emails in mailgun tickets
- Reply back to users who replies aren't permitted to go to the ticket
- Simplify sharing of HTTP configuration between services
- Add simulator ticket service to fake creating tickets
- Fix verifying sender when receiving mailgun reply
- Basic handling of tickets (mailgun and zendesk ticketer types)
- Update to goflow v0.85.0
- Use go 1.14 and do some minor dep updatse
- Bump max request bytes to 32MB for web server
- Implement hooks for status modifier events
- Update to goflow v0.83.1
- Update to goflow v0.83.0
- Don't blow up if flow is deleted during simulation
- Update to goflow v0.82.0
- Populate flows_flowstart.start_type
- Set org on new flow starts
- Allow for seeded UUID generation in testing environments with -uuid-seed switch
- Set language attribute from ivr_created_event on TwiML say action
- Update flow start modified_on when making changes
- Add method to set modified_by on contacts
- Update to latest goflow v0.81.0
- Update to latest goflow v0.79.1
- Update mailroom test db
- Only Prometheus group can access metrics
- Drop no longer used validate_with_org_id param on inspect endpoint
- Add endpoints to export and import PO files from flows
- Add decode_html Excellent function
- Change to using basic auth for org specific prom metrics endpoint
- Update to latest goflow v0.78.0
- Add prometheus endpoint for org level metrics
- Update to latest goflow v0.77.4
- Update to goflow v0.77.1
- Add noop handler for failure events
- Update to latest goflow v0.77.0
- Fix @legacy_extra NPE on router operands
- Touch readme for 5.4 release
- Update to goflow v0.76.2
- Update to goflow v0.76.1
- Contact search endpoint should also return whether query can be used as group
- Update to goflow v0.76.0
- Add support for searching by group
- Update to goflow v0.74.0
- Update to goflow v0.72.2
- Add modify contact endpoint
- Refactor hooks to allow session-less use
- Update to goflow v0.72.0
- Better asset caching
- Convert flow and expression endpoint testing to be snapshot based
- allow globals with empty values
- Update to goflow v0.71.2
- Read allow_international from channel config
- Add elastic query to parse query responses
- Update to goflow v0.71.1
- add != operator for numbers, dates, created_on
- Update to goflow v0.70.0
- Add urn =, !=, ~ support
- Fix name sorting on queries
- Update to latest goflow v0.69.0
- Sort locations fields by keyword value
- Update to latest goflow
- Fix > query on numbers, never use cached orgs
- Update gocommon for v1.2.0
- Remove superfulous legacy_definition fields on endpoints
- Allow dynamic group population within mailroom
- Update to latest goflow v0.67.0
- Update to goflow v0.66.3
- Update to latest goflow
- Update to latest goflow v0.66.0
- Update to latest goflow v0.65.0
- Make default for MaxBodyBytes 1MB
- Allow search endpoint to return results without a query
- Add endpoint to parse contactql query
- Add config option to max bytes of a webhook call response body
- Return field dependencies with queries on contact search endpoint
- Latest goflow, larger webhook bodies, trim expressions
- Update to latest goflow v0.64.9
- Add contact search web endpoint
- Update to goflow v0.64.8
- Update to goflow v0.64.7
- Include evaluation context with simulation requests
- Update to goflow v0.64.2
- Update to new goreleaser.yml format
- Make webhooks timeout configurable
- Update to goflow v0.64.0
- Fix elastic query evaluation when contact field doesn't exist
- Update to latest goflow v0.63.1
- Still do validation even when migrating to less than the current engine version
- Update to latest goflow to add support for flow migrations
- Update CreateBroadcastMessages to include globals in context
- Update to goflow v0.61.0 and provide email service to engine
- Update to goflow v0.60.1
- Add support for message topics
- Load global assets from database
- Update to goflow v0.59.0
- Update to goflow v0.58.0
- Update to goflow v0.56.3
- Update to goflow v0.56.2
- Update to latest goflow
- Use github actions
- Add new dump file with bothub instead of bh
- collect queue size 15 seconds after the minute
- Update to goflow v0.55.0
- Fix NPE when IVR channel not found
- RapidPro 5.2 release
- Update to goflow v0.54.1
- fail calls that have missing channels when retrying them
- Simulation should use a different engine instance with a fake airtime service
- Add bothub classifier service factory
- Update to goflow v0.54.0
- only release on PG10
- Implement hook for airtime_transferred event
- Use DTOne for airtime service if configured
- Update to latest Librato library
- Audit closing HTTP bodies
- Add smtp-test command
- Latest GoFlow
- Add Classifier / NLU support for LUIS and Wit.ai
- Schedules fired in Mailroom
- Fire schedules from Mailroom
- Log query execution and elapsed time
- Update to goflow v0.50.4
- Update to latest goflow v0.50.2
- Add support for triggering sessions via query within a flow
- Stop writing to legacy engine fields on flows_flowrun
- Move tasks into their own package
- Add ElasticSearch URL to README
- Add expression/migrate endpoint
- Allow interrupting sessions by flow
- Update to goflow v0.49.0
- Update to goflow v0.47.3
- Expire runs and sessions in a transaction to guarantee they are always in sync
- Remove debug error message
- Remove references to trigger_count in unit tests
- Fix create contact failing to start
- Start writing flows_flowrun.status alongside exit_type
- Handle FlowRun having nil Flow, use FlowReference instead
- Enable interrupt_sessions task
- Use ExitSession when stopping a session due to missing flow
- Add new interrupt sessions task, use more specific exit for missing flows
- Deal with handles for contacts that no longer have a URN
- Populate context with urns and fields when evaluating broadcast templates
- Change default port for Elastic to 9200 and use HTTP.
- Don't try to sniff cluster (doesn't with with cloud elastic)
- fix empty starts not being marked as complete
- allow flow starts to specify query for contacts to start
- Update to goflow v0.45.2
- Make FlowSession.uuid nullable for now
- Update to goflow v0.45.0
- Write UUID field on flows_flowsession
- write/read parent summary on flow starts
- fix IVR starts not being able to reference parent
- Update to goflow v0.42.0
- Update test db to remove msgs_broadcast.purged
- load extra for start and include when starting IVR calls
- fix leaking DB connections causing mailroom deadlock under certain loads
- Update to goflow v0.41.18
- deal with brand new URNs when sending messages
- Update to goflow v0.41.16
- Fix endpoints so we don't hard error for expected requests
- Update to goflow v0.41.14
- Update to goflow v0.41.13
- Update to goflow v0.41.12
- Update to goflow v0.41.11
- Update to goflow v0.41.10
- Update to goflow v0.41.9
- Update to goflow v0.41.8
- override default max digits of 4 for nexmo gathers
- change missing dependencies to a warning instead of an error (that is logged to sentry)
- remove references to unused fields
- update to latest gocommon, check channel is nil when determining what to send
- evaluate templates in broadcasts, including legacy ones
- mark broadcast as sent when the last batch is sent
- SignalWire IVR handling
- also treat initiated as in progress
- handle signalwire and twiml IVR calls
- Make max number of steps configurable
- Update to latest goflow v0.41.7
- Update to goflow v0.41.6
- latest goflow with UI cloning fix
- latest goflow with has phone test
- Update to goflow v0.41.3
- update test for endpoint
- latest goflow, fixing migration for relative attachments with no media
- Update to goflow v0.41.1
- The /flow/inspect endpoint should do optional validation
- Update to goflow v0.41.0
- Add /flow/clone and /flow/inspect endpoints
- Update to goflow v0.39.3 to handle malformed single message flows from campaign events
- adjust test for not stripping slashes
- deal with non-slash ending docs urls
- add docs webapp
- tweak tar arguments
- test build with docs
- Update to goflow v0.38.3 and remove satori/uuid dependency
- Update to goflow v0.38.2
- Update to goflow v0.38.0
- latest goflow engine
- override name and uuid in definition with db settings
- goflow v37.2, fixes text_slice unicode issues
- Update to goflow v0.37.1
- latest goflow, accept text/javascript webhooks
- override expire_after_minutes on saved definition with flow setting
- Update to goflow v0.36.0
- Dont apply events on errored sessions
- assign topups to broadcast messages
- Update to goflow v0.34.1
- Update to goflow v0.34.0
- Update to goflow v0.33.9
- Update to goflow v0.33.8 (expressions refactor)
- Update to goflow v0.33.7
- Update to goflow v0.33.6
- add option to enable / disable retrying pending messages
- dont migrate flows that are version 12 or above
- fix issue with timeouts and followup splits
- latest goflow, log all errors to session
- fix dot lookup on nil values
- better logging in case of panic
- latest goflow, add support for templates
- latest gocommon, phonenumbers
- switch to using generic map interface for extra on channel events
- move to using our own null.StringMap so channel events are decoded properly
- print extra when ignoring event
- better testing of ivr for nexmo and twitter
- don't log to sentry on failed call starts (channellog created anyways), deal with channels disappering before handling
- fix for referral triggers with specific referrers matching others
- for nexmo, first look at URL param to see if call is ongong
- update method for nexmo call creation
- Latest goflow
- latest goflow
- properly start IVR flows on msg triggers
- update to version 31
- fix campaigns based on created_on, fix panic when batch starts on archived flow
- Latest goflow
- only interrupt sessions of the same type
- Update to latest goflow
- more verbose logging when failing on run insert
- remove all unfired campaign event fires when stopping contacts
- send messages for IVR flows as well
- retry unhandled messages only once an hour
- latest goflow, don't try to validate missing flows
- add cron to retry unhandled messages
- validate flows before resume or start
- dont log email sending errors to sentry
- better sentry logging on task fails
- deal with inactive and archived flows in the same way
- latest goflow
- Latest goflow
- Update to latest goflow
- latest goflow, fix date addition
- add support to handle welcome message event as noop
- don't throw error when channel doesn't have FCM id
- latest goflow, pass in attachment domain
- latest goflow, deal with missed mos
- Proper parameters for FCM syncing
- sync android channels when creating messages, refactor clearing timeouts
- dont create outgoing ivr messages (internally) when resuming a completed call
- Update to latest goflow
- Make org_id optional on /mr/flow/validate to validate a flow without assets
- properly set priority on outgoing messages
- update to latest goflow
- add flow validation endpoint
- log channellogs even when we don't have a connection
- mark fires as skipped when skipping
- GC db connections after 30m, keep 8 around
- give ourselves 15 minutes per start
- retry transaction on failures
- trim contact names to 128 chars
- up to 36 redis connections
- add db in use metric to librato
- create start objects for trigger sessions
- mention error count in error
- retry contact events up to three times
- remove use of is_active on channel connection
- use primary_language_id instead of interface language, allow empty runs
- latest goflow, deal with datetime + time additions
- fix for PROPER
- better time addition
- keep punctuation in remove_first_word
- proper settings for skip campaigns
- latest goflow, fix date arith
- include queued on on self queued tasksk
- log relative wait and wait_ms to librato, not total
- record task latency to librato
- latest goflow nil is zero, text() for results
- tweaks to default connection / queue size, better stats
- add stats package to log queue size, db connections every minute
- audit transaction rollbacks, bit less logging
- allow resumes on completed sessions (noops if msg isn't trigger)
- latest goflow, more date migrations
- latest goflow, fix migration for DAYS
- dont trigger on catch alls if we are in a flow
- process triggers in simulation
- latest goflow, more date tweaks
- latest goflow
- add xdate type
- fix NPE when referencing @child or @parent
- allow resume when we have completed connection status (due to race)
- process incoming TWIML events even if a call is completed
- more travis attempts
- try different condition
- use env for testing
- test release
- try only releasing on 9.6 matrix
- use lowercase smtp_config org config
- latest goflow with tls renegotation
- latest goflow, make sure expirations aren't honored for inactive runs in cases of races
- latest goflow engine, change invalid urns to warn
- add test for IVR timeouts
- allow missed calls to start ivr calls
- refactor queue constants
- set timeout when no message has been sent in a session
- latest goflow
- fix for duplicate fields deletion in single flow only applying one
- dont queue messages with no topup assigned, latest goflow
- try to derive content type for webhook payloads
- reset db between tests
- mark event fires as fired when starting ivr flows
- allow ivr flows to be started via campaigns
- fix contact stopping, fix error on status for missed calls
- better logging of event in case of error during handling
- fix ContactID mismatch
- grab contact locks when starting
- move to nyaruka/null null ints and strings
- allow channels to be set in simulations
- write webhook events even in simulation case
- add max value to env
- add models and tests for webhook events, update libs
- associate webhook results with resthook ids
- add extra to starts, pass into trigger, add test
- log requests when throwing ivr errors
- don't add attachment domain to geo msg attachments
- pass pointer for run insertion
- use xml comments in twilio responses for info messages instead of xml element
- update tests
- add session type to session
- write both incoming and outgoing surveyor messages
- newest goflow
- encapsulate flowrun and flowsession
- deal with missing fields and groups in surveyor submissions
- write webhook results for webhook/resthook actions
- use nyaruka sentry so we get breadcrumbs
- add http_request to errors in web tier so we get more context
- allow submission of surveyor flows
- pg 10 support
- add nexmo and twilio ivr support
- fix location selecting using mptt model
- update to latest goflow
- optimize getting flow definition
- add timings for flow loading
- add timings for loading org assets
- add unit tests for expirations and timeouts
- make sure we filter by org id when looking up flows from asserts
- update msg payload to be in sync with db and courier
- add timeout and wait_started_on fields to msg sent to courier and session
- move to latest goflow
- update test sql to latest from rapidpro
- flush cache before each set of tests
- more tests, tweaks to timed events
- add contact locking when processing contact events
- add tests for broadcast batching
- dont log requests to index page (usually from health checker)
- latest goflow, fixes @parent.contact.urn
- dont require authorization for / and /mr for status checks
- mailroom tweaks in support of simulation
- fix for single URN broadcasts not sending
- v1 of broadcast support
- lastest goflow
- fix datediff units, add session trigger support
- add session trigger action
- latest goflow, fixes migration of webhook action
- update calls to NewMsgIn
- latest goflow, fixes case issues
- goflow fix for looping
- add support for input_labels_added event
- latest goflow
- add migrate endpoint
- better status codes in webserver
- graceful exits
- more optimizations for campaign calculations, fix null value case
- derive default country from channel countries
- v1 of simulation endpoint
- add support for contact urn changed event, unify updating appropriately
- set exited_on and ended_on based on server clock
- only wait for sigquit
- refactor starts so they pass through same codepath in all cases
- correct handling of catch all triggers
- add support for email created event
- ignore msg created events that have no urns
- mark events as fired even if we end up not creating any sessions
- add support for campaign start modes
- less logging, only look at expired runs with sessions
- latest goflow
- change to pkg/errors instead of juju
- full handling of timeouts, expirations, handling for flow_server_enabled orgs (alpha)
- calculate real tps cost when building messages
- update tests for quick replies
- proper encoding of quick replies
- deal with case of attachment URL not having leading /
- resolve relative URLs to absolute URLs
- migrate date tests properly in routers
- increase our rate of flushing to librato
- ignore flow triggered events
- remove use of models.ContactID, updated modified_on for contacts that change groups
- set status of start to starting after queuing subtasks, update contact count
- allow flows to be started through mailroom
- fix tests
- optimize contact loading queries
- ignore (but log) invalid contact urns
- more better logging
- fix for empty query case, better logging, json env
- correct queue names
- proper config options
- add session commit hook, configurable number of threads
- enable mailroom campaigns on all flow_server_enabled flows
- add support for group, field, name and language changes
- add support for recalculating campaign events
- correct redaction policy for urns
- better logging
- more logging of event fires
- better elapsed units
- tweak librato event names
- add librato library
- add librato logging, catch panics in cron and workers
- better testing of end state of runner
- use bulk inserts for all sessions / runs / messages
- use same redis caching of topups as rapidpro
- more tests, updated temba.dump, add testsuite package
- deal with no locations for org
- clear queuing if there is an error starting task
- fire crons one second after the minute, fix multiple contact fires
- update goreleaser
- full support for simple flows
- remove contact fields for now
- tweak readme
- fix binding
- queue all messages for contact at once
- fix broken uuid import