- Add response to external ID to courier serialized msg if we have response to
- More Py3 migration work
- Remove broadcasting to groups from Send Message dialog
- Do not delete RuleSets only disconnect them from flows
- Fix scoping for sim show/hide
- Allow toggling of new engine on demand with /v2 command in simulator
- Fix negative cache ttl for topups
- Remove Vumi Type
- Remove custom autoscaler for Celery
- Implement Plivo without Plivo library
- Build dynamic groups in background thread
- Dynamic Channel changes, use uuids in URLs, allow custom views
- Allow WhatsApp channels to refresh contacts manually
- Allow brands to specifiy includes for the document head
- Fix external claim page, rename auth_urn for courier
- Change VB channel type to be a dynamic channel
- Remove unused templates
- Add ability to run select flows against a flowserver instance
- Move JioChat access creation to channel task
- Use 'list()' on python3 dict iterators
- Use analytics-python===1.2.9, python3 compatible
- Fix using PlayAction in simulator and add tests
- Fix HasEmailTest to strip surrounding punctuation
- ContainsPhraseTest shouldn't blow up if test string is empty
- Use 'six' library for urlparse, urlencode
- Unfreeze phonenumbers library so we always use latest
- Remove old Viber VI channel type
- Add config template for LN channel type
- Move configuration blurbs to channel types
- Move to use new custom model JSONAsTextField where appropriate
- Fix quick-reply button in flow editor
- Fix webhook rule as first step in run interpreting msg wrong
- Change mailto URN importing to use header 'mailto' and make 'email' always a field. Rename 'mailto' fields to 'email'.
- Add ArabiaCell channel type
- Tweaks to Mtarget channel type
- Pathfix for highcharts
- Add input to webhook payload
- Remove support for legacy webhook payload format
- Fix org-choose redirects for brands
- Remove stop endpoint for MT
- Inactive flows should not be listed on the API endpoint
- Add Mtarget channel type
- Add run dict to default webhook payload
- have URNs resolve to dicts instead of just the display
- order transfer credit options by name
- show dashboard link even if org is chosen
- include contact URN in webhook payload
- Allow exporting results of archived flows
- Update Twitter Activity channels to work with latest beta changes
- Increase maximum attachment URL length to 2048
- Tweak contact searching so that set/not-set conditions check the type specific column
- Migration to delete value decimal/datetime instances where string value is "None"
- Don't normalize nulls in @extra as "None"
- Clear timeouts for msgs which dont have credits assigned to them
- Simpler contact get_or_create method to lookup a contact by urn and channel
- Prevent updating name for existing contact when we receive a message
- Remove fuzzy matching for ContainsTest
- Reimplement clickatell as a Courier only channel against new API
- Use database trigger for inserting new recent run records
- Handle stop contact channel events
- Remove no longer used FlowPathRecentRun model
'# Enter any comments for inclusion in the CHANGELOG on this revision below, you can use markdown
- Update date for webhook change on api docs
- Don't use flow steps for calculating test contact activity
- Stop using FlowPathRecentMessage
- Migration to convert recent messages to recent runs
- Add new model for tracking recent runs
- Add dynamic group optimization for new contacts
- Drop index on FlowStep.step_uuid as it's no longer needed
- Still queue messages for sending when interrupted by a child
- Use FlowRun.current_node_uuid for sending to contacts at a given flow node
- Tweak process_message_task to not blow up if message doesn't exist
- Use FlowRun.message_ids for flow result exports
- Use config secret instead of secret field on Channel
- Add tests for datetime contact API field update
- Fix deleting resthooks
- Fix quick replies UI on Firefox
- Process contact queue until there's a pending message or empty
- Make date parsing much stricter
- Migration to fix run results which were numeric but parsed as dates
- Use transaction when creating contact URN
- Add support for v2 webhooks
- Fix run.path trigger to not blow up deleting old steps that don't have exit_uuids
- Define MACHINE_HOSTNAME for librato metrics
- Fix handle_ruleset so we don't continue the run if a child has exited us
- Migration to backfill FlowRun.message_ids and .current_node_uuid (recommend faking and running manually)
- Add support for 'direct' db connection
- Stop updating count and triggered on on triggers
- Add FlowRun.current_node_uuid and message_ids
- Catch IntegrityError and lookup again when creating contact URN
- Make sure we dont allow group chats in whatsapp
- Ignore TMS callbacks
- Stop writing values in flows to values_value
- Performance improvements and simplications to flow result exports
- Add some extra options to webhook_stats
- Migration to convert old recent message records
- Remove incomplete path counts
- Migrate languages on campaign events
- Rework flow path count trigger to use exit_uuid and not record incomplete segments
- Don't import contacts with unknown iso639-3 code
- Make angular bits less goofy for quick replies and webhooks
- Add is_active index on flowrun
- Don't disassociate channels from orgs when they're released
- Include language column in Contact export
- Set tps for nexmo and whatsapp
- Dont overwrite name when receiving a message from a contact that already exists
- Flow start performance improvements
- Parse ISO dates followed by a period
- Optimize batch flow starts
- Update Nexmo channels to use new Courier URLs
- Store path on AdminBoundary for faster lookups
- Serialize metata for courier tasks (quick replies support)
- Add default manager to AdminBoundary which doesn't include geometry
- Fixes to the ISO639-3 migration
- Add support for quick replies
- Add flow migration for base_language in flow definitions
- back down to generic override if not found with specific code
- Add esp-spa as exception
- Fix language migrations
- Fix serialization of 0 decimal values in API
- Add initial version of WhatsApp channel (simple messaging only)
- Migrate to iso639-3 language codes (from iso639-2)
- Remove indexes on Msg, FlowRun and FlowStep which we don't use
- Remove fields no longer used on org model
- Don't blow up when a flow result doesn't have input
- Fix parsing ISO dates with negative offsets
- Serialize contact field values with org timezone
- Load results and path from new JSON fields instead of step/value objects on API runs endpoint
- Fix campaign export issue
- Disable legacy analytics page
- Change date constants and contact fields to use full/canonical format in expressions context
- Fix not updating versions on import flows
- Require FlowRun saves to use update_fields
- Rework get_results to use FlowRun.results
- Don't allow users to save dynamic groups with 'id' or 'name' attributes
- Add flow version 11.0, create migration to update references to contact fields and flow fields
- Show summary for non-waits on flow results
- Reduce number of queries during flow handling
- Start campaigns in separate task
- Enable flow results graphs on flow result page
- Fix run table json parsing
- SuperAutoScaler!
- Use string comparison to optimize temba_update_flowcategorycount
- Allow path counts to be read by node or exit
- SuperAutoscaler
- Fix inbox views so we don't look up channel logs for views that don't have them
- Add management command for analyzing webhook calls
- Change recent message fetching to work with either node UUID or exit UUID
- Migrate revisions forward with rev version
- Limit scope of squashing so we can recover from giant unsquashed numbers
- Make tests go through migration
- Set version number of system created flows
- Block saving old versions over new versions
- Perform apply_topups as a task, tweak org update form
- Updates to credit caches to consider expiration
- Tweak credit expiration email
- Improve performance and restartability of run.path backfill migration
- Update to latest smartmin
- Use run.results for run results page
- Set brand domain on channel creations, use for callbacks
- Migration to populate run paths (timeconsuming, may want to fake aand run manually)
- Ensure actions have UUIDs in single message and join-group flows
- Flow migration command shouldn't blow up if a single flow fails
- Fix Twilio to redirect to twilio claim page after connecting Twilio
- Add FlowRun.path and start populating it for new flow steps
- Removes no longer used Msg.has_template_error field
- Use get_host() when calculating signature for voice callbacks
- use get_host() when validating IVR requests
- Better Twilio channel claiming
- Tweaks to recommended channels display
- Update smartmin to version 1.11.4
- Dynamic channels: Chikka, Twilio, Twilio Messaging Service and TwiML Rest API
- Tweaks to the great FlowRun results migration for better logging and for parallel migrations
- Fixes us showing inactive orgs in nav bar and choose page
- Ignore requests missing text for incoming message from Infobip
- Add exit_uuid to all flow action_sets (needed for goflow migrations)
- Add index to FlowPathRecentMessage
- Flows API endpoint should filter out campaign message flow type
- Add archived field to campaings API endpoint
- Fix to correctly substitute context brand variable in dynamic channel blurb
- Data migration to populate results on FlowRun (timeconsuming, may want to fake and run manually)
- Migration to increase size of category count
- Increase character limits on category counts
- Fix Nexmo channel link
- Add results field to FlowRun and start populating
- Add FlowCategoryCount model for aggregating flow results
- Remove duplicate USSD channels section
- Remove single message flows when events are deleted
- Remove field dependencies on flow release, cleanup migration
- Update to latest Django 1.11.6
- Mage handler shouldn't be accessible using example token in settings_common
- Make Msg.has_template_error nullable and stop using it
- Add claim page for dmark for more prettiness
- Add management command to migrate flows forward
- Add flow migration for partially localized single message flows
- Recalculate topups more often
- Add dmark channel (only can send and receive through courier)
- Merge pull request #1522 from nyaruka/headers
- Replace TEMBA_HEADERS with http_headers()
- Improve mock server used by tests so it can mock specifc url with specific responses
- Add method to get active channels of a particular channel type category
- Replace remaining occurrences of assertEquals
- Fix the way to check USSD support
- Dynamic channels: Vumi and Vumi USSD
- Deal with malformed group format as part of group updates
- Allow installs to configure how many fields they want to keep in @extra
- Fix Nexmo icon
- Add logs for incoming requests for InfoBip
- Do both Python 2 and 3 linting in a single build job
- Do not set external ID for InfoBip we have send them our ID
- Fix channel address comparison to be insensitive to +
- Use status groupId to check from the InfoBip response to know if the request was erroneous
- Add id to reserved field list
- Update Infobip channel type to use the latest JSON API
- Migrate flows forward to have dependencies
- Fix issue with dates in the contact field extractor
- Allow org admin to remove invites
- Optimize how we check for unsent messages on channels
- Ensure all actions have a UUID in new flow spec version 10.1
- Fixes viber URN validation: can be up to 24 chars
- Dynamic channels: Zenvia, YO
- Add support for minor flow migrations
- Remove duplicate excellent includes (only keep compressed version)
- Only show errors in UI when org level limits of groups etc are exceeded
- Improve error messages when org reaches limit of groups etc
- Add indexes for retying webhook events
- Remove no longer used Msg.priority (requires latest Mage)
- Create channel event only for active channels
- Limit SMS Central channel type to the Kathmandu timezone
- Create fields from expressions on import
- Flow dependencies for fields, groups, and flows
- Dynamic channels: Start
- Dynamic channels: SMS Central
- Delete simulation messages in batch of 25 to use the response_to index
- Fix Kannel channel type icon
- @step.contact and @contact should both be the run contact
- Migration to set value_type on all RuleSets
- Add page titles for common pages
- New index for contact history
- Exit flows in batches so we dont have to grab all runs at once
- Check we can create a new groups before importing contact and show the error message to the user
- Fixes value type guessing on rulesets (we had zero typed as dates)
- Update po files
- Dynamic channels: Shaqodoon
- Should filter user groups by org before limiting to 250
- Fixes for slow contact history
- Allow updating existing fields via API without checking the count
- Update TWIML IVR protocol check
- Add update form fields in dynamic channel types
- Abstract out the channel update view form classes
- Add ivr_protocol field on channel type
- Mock constants to not create a lot of objects in test DB
- Limit the contact fields max per org to 200 to below the max form post fields allowed
- Limit number of contact groups creation on org to 250
- Limit number of contact fields creation on org to 250
- Dynamic channels: Red Rabbit, Plivo Nexmo
- Make Msg.priority nullable so courier doesn't have to write to it
- Calculate TPS cost for messages and add them to courier queues
- Fix truncate cases in SQL triggers
- Fix migration to recreate trigger on msgs table
- Dynamic channels: Mblox
- Properly create event fires for campaign events updated through api
- Strip matched string in not empty test
- Dynamic channels: Macrokiosk
- Make message priority be based on responded state of flow runs
- Support templatized urls in media
- Add UI for URL Attachments
- Prevent creation of groups and labels at flow run time
- Dynamic channels: M3Tech, Kannel, Junebug and Junebug USSD
- Add a way to specify the prefixes short codes should be matching
- Include both high_priority and priority in courier JSON
- Fix TwiML migration
- Fix JSON response when searching Plivo numbers
- Msg.bulk_priority -> Msg.high_priority
- Change for currencies for numeric rule
- Dynamic channels for Jasmin, Infobip, and Hub9
- Fix Twiml config JSON keys
- Unarchiving a campaign should unarchive all its flows
- Fix broken Twilio Messaging Service status callback URL
- Only update dynamic groups from set_field if value has changed
- Optimize how we lookup contacts for some API endpoints
- More dynamic channels
- add way to show recommended channel on claim page for dynamic channels
- change Org.get_recommended_channel to return the channel type instead of a random string
- separate create and drop index operations in migration
- create new compound index on channel id and external id, remove old external id index
- consistent header for contact uuid in exports and imports
- unstop contacts in handle message for new messages
- populate @extra even on webhook failures
- fix flow simulator with chatbase connected
- use ContactQL for name of contact querying grammar
- dynamic channels: Clickatell
- fix contact searching where text includes + or / chars
- replace Ply with ANTLR for contact searching (WIP)
- Make clean string method replace non characteres correctly
- Support Telegram /start command to trigger new conversation trigger
- Use correct Twilio callback URL, status is for voice, keep as handler
- Add /c/kn/uuid-uuid-uuid/receive style endpoints for all channel types
- Delete webhook events in batches
- Dynamic channels: Blackmyna
- update triggers so that updates in migration work
- make sure new uuids are honored in in_group tests
- removes giant join through run/flow to figure out flow steps during export
- create contacts from start flow action with ambiguous country
- add tasks for handling of channel events, update handlers to use ChannelEvent.handle
- add org level dashboard for multi-org organizations
- Tweaks to allow message handling straight from courier
- Add flow session model and start creating instances for IVR and USSD channel sessions
- Allow empty contact names for surveyor submissions but make them null
- Honor admin org brand in get_user_orgs
- Fix external channel bulk sender URL
- Send broadcast in the same task as it is created in and JS utility method to format number
- Try the variable as a contact uuid and use its contact when building recipients
- Fix org lookup, use the same code path for sending a broadcast
- Fix broadcast to flow node to consider all current contacts on the the step
- Update test_db to generate deterministic UUIDs which are also valid UUID4
- Turn down default courier TPS to 10/s
- Make sure msg time never wraps in the inbox
- Use a real but mockable HTTP server to test flows that hit external URLs instead of mocking the requests
- Add infobip as dynamic channel type and Update it to use the latest Infobip API
- Add support for Courier message sending
- Use twitter icon for twitter id urns
- Tweak test_start_flow_action to test parent run states only after child runs have completed
- Stop contacts when they have only an invalid twitter screen name
- Change to max USSD session length
- Ignore case when looking up twitter screen names
- Switch to using twitterid scheme for Twitter messages
- Should be shipped before Mage v0.1.84
- Allow editing of start conversation triggers
- Remove urn field, urn compound index, remove last uses of urn field
- remove all uses of urn (except when writing)
- create display index, backfill identity
- Allow users to specify extra URNs columns to include on the flow results export
- Add display and identity fields to ContactURN
- Add schemes field to allow channels to support more than one scheme
- Fix incorrect lambda use so message sending works
- Make ContactField.uuid unique and non-null
- Add migration to populate ContactField.uuid
- Only try to delete Twilio app when channel config contains 'application_sid'
- Surveyor submissions should try rematching the rules if the same ruleset got updated by the user and old rules were removed
- Add uuid field to ContactField
- Convert more channel types to dynamic types
- Fixes for Twitter Activity channels
- Add stop contact command to mage handler
- Convert Firebase Cloud Messaging to a dynamic channel type
- Convert Viber Public to a dynamic channel type
- Change to the correct way for dynamic channel
- Convert LINE to a dynamic channel type
- Better message in SMS alert email
- Hide SMTP config password and do not change the set password if blank is submitted
- Validate the length of message campaigns for better user feedback
- Make FlowRun.uuid unique and non-null (advise faking this and building index concurrently)
- Migration to populate FlowRun.uuid. Advise faking this and running manually.
- More channel logs for Jiochat channel interactions
- Fix inclusion of attachment urls in webhook payloads and add tests
- Install lxml to improve performance of large Excel exports
- Add proper deactivation of Telegram channels
- Converted Facebook and Telegram to dynamic channel types
- Add nullable uuid field to FlowRun
- Make sure we consider all URN schemes we can send to when looking up the if we have a send channel
- Split Twitter and Twitter Beta into separate channel types
- Remove support for old-style Twilio endpoints
- Release channels before Twilio/Nexmo configs are cleared
- Expose flow start UUID on runs from the runs endpoint
- Migration to populate FlowStart.uuid on existing objects (advise faking and run manually)
- Add uuid field to FlowStart
- Migration to convert TwiML apps
- Add support for Twitter channels using new beta Activity API
- Clean incoming message text to remove invalid chars
- Add more exception currencies for pycountry
- Support channel specific Twilio endpoints
- Clean up pip-requires and reset pip-freeze
- Reduce the rate limit for SMS central to 1 requests per second
- Display Jiochat on channel claim page
- Fix date pickers on modal forms
- Update channels to generate messages with multiple attachments
- Rate limit sending throught SMS central to 10 messages per second
- Fix some more uses of Context objects no longer supported in django 1.11
- Fix channel log list request time display
- Add @step.text and @step.attachments to message context
- Jiochat channels
- Django 1.11
- Convert all squashable and prunable models to use big primary keys
- Drop database-level length restrictions on msg and values
- Add sender ID config for Macrokiosk channels
- Expose org credit information on API org endpoint
- Add contact_uuid parameter to update FCM user
- Add configurable webhook header fields
- Fix simulator with attachments
- Switch to using new recent messages model
- Migration to populate FlowPathRecentMessage
- Clip messages to 640 chars for recent messages table
- Change Macrokiosk time format to not have space
- Better error message for external channel handler for wrong time format
- Add new model for tracking recent messages on flow path segments
- Remove Msg.media field that was replaced by Msg.attachments
- Change default ivr timeouts to 2m
- Fix the content-type for Twilio call response
- Update contact read page and inbox views to show multiple message attachments
- Fix use of videojs to provide consistent video playback across browsers
- API should return error message if user provides something unparseable for a non-serializer param
- Fix handling of old msg structs with no attachments attribute
- Tweak in create_outgoing to prevent possible NPEs in flow execution
- Switch to using Msg.attachments instead of Msg.media
- Replace index on Value.string_value with one that is limited to first 32 chars
- Fix Macrokiosk JSON responses
- Migration to populate attachments field on old messages
- Don't assume event fires still exist in process_fire_events
- Add new Msg.attachments field to hold multiple attachments on an incoming message
- Fix scheduled broadcast text display
- Make 'only' keyword triggers ignore punctuation
- Make check_campaigns_task lock on the event fires that it will queue
- Break up flow event fires into sub-batches of 500
- Ignore and ack incoming messages from Android relayer that have no number
- Add match_type option to triggers so users can create triggers which only match when message only contains keyword
- Allow Africa's talking to retry sending message
- Allow search on the triggers pages
- Clear results for analytics when user removes a flow run
- Make Msg.get_sync_commands more efficent
- Fix open range airtime transfers
- Fix multiple Android channels sync
- Fix parsing of macrokiosk channel time format
- Ensure that our select2 boxes show "Add new" option even if there is a partial match with an existing item
- Switch to new translatable fields and remove old Broadcast fields
- Add Firebase Cloud messaging support for Android channels
- Migration to populate new translatable fields on old broadcasts. This migration is slow on a large database so it's recommended that large deployments fake it and run it manually.
- Add new translatable fields to Broadcast and ensure they're populated for new stuff
- Fix autocomplete for items containing digits or other items
- Make autocomplete dropdown disappear when user clicks in input box
- Replace usages of "SMS" with "message" in editor
- Allow same subflow to be called without pause in between
- Fix exporting messages by a label folder
- Improve performance of org export page for large orgs
- Make it easier to enable/disable debug toolbar
- Increase channel logging for requests and responses
- Change contact api v1 to insert nonexistent fields
- Graceful termination of USSD sessions
- Don't show deleted flows on list page
- Convert timestamps sent by MacroKiosk from local Kuala Lumpur time
- Move initial IVR expiration check to status update on the call
- Hide request time in channel log if unset
- Check the existance of broadcast recipients before adding
- Voice flows import should never allow expirations longer than 15 mins
- Fix parse location to correctly use the tokenizized text if the location was matched for the entire text
- Use updates instead of full Channel saves() on realyer syncs, only update when there are changes
- Use flow starts for triggers that operate on groups
- Handle throttling errors from Nexmo when using API to add new numbers
- Convert campaign event messages to HSTORE fields
- Add MACROKIOSK channel type
- Show media for MMS in simulator
- Fix send all bug where we append list of messages to another list of messages
- Flows endpooint should allow filtering by modified_on
- More vertical form styling tweaks
- Add flow link on subflow rulesets in flows
- Fix styling on campaign event modal
- Update to latest Raven
- Make default form vertical, remove horizontal to vertical css overrides
- Add flow run search and deletion
- Hangup calls on channels release
- Allow message exports by label, system label or all messages
- Fix for double stacked subflows with immediate exits
- Archiving a flow should interrupt all the current runs
- Display webhook results on contact history
- Clean up template tags used on contact history
- Allow broadcasts to be sent to all urns belonging to the specified contacts
- Data migration to populate broadcast send_all field
- Add webhook events trim task with configurable retain times for success and error logs
- Add send_all broadcast field
- Remove non_atomic_gets and display message at /api/v1/ to explain API v1 has been replaced
- Add squashable model for label counts
- Split system label functionality into SystemLabel and SystemLabelCount
- Link subflow starts in actions
- Allow wait to wait in flows with warning
- Add new has email test, contains phrase test and contains only phrase test
- Migration to populate FlowNodeCount shouldn't include test contacts
- Add migration to populate FlowNodeCount
- Migration to clear no-longer-used flow stats redis keys
- Replace remaining cache-based flow stats code with trigger based FlowNodeCount
- Fix intermittently failing Twilio test
- make sure calls have expiration on initiation
- Update to latest smartmin
- Add redirection for v1 endpoints
- Fix webhook docs
- Fix MsgCreateSerializer not using specified channel
- Test coverage
- Fix test coverage issues caused by removing API v1 tests
- Ensure surveyor users still have access to the API v2 endpoint thats they need
- Remove djangorestframework-xml
- Restrict API v1 access to surveyor users
- Block all API v2 writes for suspended orgs
- Remove all parts of API v1 not used by Surveyor
- Prioritize msg handling over timeotus and event fires
- Remove hamlcompress command as deployments should use regular compress these days
- Fix not correctly refreshing dynamic groups when a URN is removed
- Allow searching for contacts with any value for a given field
- Fix sidebar nav LESS so that level2 lists don't have fixed height and separate scrolling
- Unstop a contact when we get an explicit user interaction such as follow
- Fix possible race condition between receiving and handling messages
- Do away with scheme for USSD, will always be TEL
- Make sure events are handled properly for USSD
- Do not specify to & from when using reply_to
- Update JunebugForm for editing Junebug Channel + config fields
- Log request time on channel log success
- Fix test, fix template tags
- Change request times to be in ms instead of seconds
- Block on handling incoming msgs so we dont process them forever away
- Include Viber channels in new conversation trigger form channel choices
- Don't use cache+calculations for flow segment counts - these are pre-calculated in FlowPathCount
- Do not include active contacts in flows unless user overrides it
- Clean up middleware imports and add tests
- Feedback to user when simulating a USSD channel without a USSD channel connected
- Expand base64 charset, fix decode validity heuristic
- Deal with Twilio arbitrarily sending messages as base64
- Allow configuration of max text size via settings
- Set higher priority when sending responses through Kannel
- Do not add stopped contacts to groups when importing
- Fix an entire flow start batch failing if one run throws an exception
- Limit images file size to be less than 500kB
- Send Facebook message attachments in a different request as the text message
- Include skuid for open range tranfertto accounts
- Fix exception when handling Viber msg with no text
- Migration to remove no longer used ContactGroup.count
- Fix search queries like 'foo bar' where there are more than one condition on name/URN
- Add indexes for Contact.name and ContactURN.path
- Replace current omnibox search function with faster and simpler top-25-of-each-type approach
- Fix Line, FCM icons, add Junebug icon
- Render missing field and URN values as "--" rather than "None" on Contact list page
- Add ROLE_USSD
- Add Junebug USSD Channel
- Fix Vumi USSD to use USSD Role
- Archive triggers that do not have a contact to send to
- Disable sending of messages for blocked and stopped contacts
- Add support for outbound media on reply messages for Twilio MMS (US, CA), Telegram, and Facebook
- Do not throw when viber sends us message missing the media
- Optimizations around Contact searching
- Send flow UUID with webhook flow events
- Allow configuration of max message length to split on for External channels
- Use brand key for evaluation instead of host when determining brand
- Add red rabbit type (hidden since MT only)
- Fix flow results exports for broadcast only flows
- Log Nexmo media responses without including entire body
- Dont encode to utf8 for XML and JSON since they expect unicode
- Optimize contact searching when used to determine single contact's membership
- Use flow system user when migrating flows, avoid list page reorder after migrations
- reduce number of lookup to DB
- Add test case for search URL against empty field value
- Fix sending vumi messages initiated from RapidPro without response to
- Improvements to external channels to allow configuration against JSON and XML endpoints
- Exclude test contacts from flow results
- Update to latest smartmin to fix empty string searching
- Allow USSD flows to start someone else in a flow
- Include reply to external_id for Vumi channel
- Add ID column to result exports for anon orgs
- Deactivate runs when releasing flows
- Fix urn display for call log
- Increased send and receive channel logging for Nexmo, Twilio, Twitter and Telegram
- Allow payments through Bitcoins
- Include TransferTo account currency when asking phone info to TransferTo
- Don't create inbound messages for gather timeouts, letting calls expire
- Don't show channel log for inactive channels on contact history
- Upgrade to latest smartmin which changes created_on/modified_on fields on SmartModels to be overridable
- Uniform call and message logs
- Add ID column to anonymous org contact exports, also add @contact.id field in message context
- Fix counts for channel log elements
- Only have one link on channel page for sending log
- Attempt to determine file types for msg attachments using libmagic
- Deactivate runs on hangups, Keep ivr runs open on exit
- Add log for nexmo media download
- Add new perf_test command to run performance tests on database generated with make_test_db
- Fix preferred channels for non-msg channels
- Make migrations to populate new export task fields non-atomic
- Add indexes for admin boundaries and aliases
- Nexmo: make sure calls are ended on hangup, log hangups and media
- Fix inbound calls on Nexmo to use conversation_uuid
- Style tweaks for zapier widget
- Use shorter timeout for IVR
- Issue hangups on expiration during IVR runs
- Catch all exceptions and log them when initiating call
- Fix update status for Nexmo calls
- Add channel session log page
- Use brand variable for zaps to show
- Additional logging for nexmo
- Increase non-overlap on timeout queueing, never double queue single timeout
- Fix broken timeout handling when there is a race
- Make field_keys a required parameter
- Speed up the contact import by handling contact update at once after all the fields are set
- Add channel log for Nexmo call initiation
- Fix import-geojson management command
- Fix Contact.search so it doesn't evaluate the base_query
- Enable searching in groups and blocked/stopped contacts
- Fix absolute positioning for account creation form
- Add Line channel icon in fonts
- Add data migrations to update org config to connect to Nexmo
- Add Malawi as a country for Africa's Talking
- Widen pages to browser width so more can fit
- Fix the display of URNs on contact list page
- Fix searching of Nexmo number on connected accounts
- Fix channel countries being duplicated for airtime configuration
- Add make_sql command to generate SQL files for an app, reorganize current SQL reference files
- Added SquashableModel and use it for all squashable count classes
- Add support for Nexmo IVR
- Log IVR interactions in Channel Log
- Fix to make label of open ended response be All Response even if there is timeout on the ruleset
- Data migration to rename category for old Values collected with timeouts
- Add 256 keys to @extra, also enforce ordering so it is predictible which are included
- Make fetching flow run stats more efficient and expose number of active runs on flow run endpoint
- Migration to populate session on msg and ended_on where it is missing
- Offline context per brand
- Add Junebug channel type
- Better base styling for dev project
- Pass charset parameter to Kannel when sending unicode
- Zero out minutes, seconds, ms for campaign events with set delivery horus
- Add other URN types to contact context, return '' if missing, '*' mask for anon orgs
- Make sure Campaigns export base_language for simple message events, honor on import
- Change ansible command run on vagrant up from syncdb to migrate
- Remove no longer needed django-modeltranslation
- Keep up to 256 extra keys from webhooks instead of 128
- Add documentation of API rate limiting
- Make styling variables uniform across branding
- Make brand styling optional
- Add support for subflows over IVR
- Fix searching for Twilio numbers, add unit tests
- Fix API v1 run serialization when step messages are purged
- Adds more substitutions from accented characters to gsm7 plain characters
- Populate ended_on for ivr calls
- Add session foreign key to Msg model
- Fix bug in starting calls from sessions
- Remove flow from ChannelSession, sessions can span many runs/flows
- Remove superfluous channelsession.parent
- Migration to update existing twiml apps with a status_callback, remove api/v1 references
- Various tweaks to wording and presentation around custom SMTP email config
- Allow orgs to set their own SMTP server for outgoing emails
- Return better error message when To number not passed to Twilio handler
- Exclude Flow webhook events from retries (we try once and forget)
- Don't pass channel in webhook events if we don't know it
- Use JsonResponse and response.json() consistently
- Replace json.loads(response.content) with response.json() which properly decodes on Python 3
- Improve performance of contact searches by location by fetching locations in separate query
- Update pyparsing to 2.1.10
- Update to new django-hamlpy
- Display flow runs exits on the contact timeline
- Fix Travis settings file for Python 3
- Fix more Python 3 syntax issues
- Fix RecentMessages no longer supporting requests with multiple rules, and add tests for that
- Use print as function rather than statement for future Python 3 compatibility
- Do not populate contact name for anon orgs from Viber
- Add is_squashed to FlowPathCount and FlowRunCount
- Updates to using boto3, if using AWS for storing imports or exports you'll need to change your settings file:
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
- Allow for the creation of Facebook referral triggers (opt-in on FB)
- Allow for whitelisting of domains for Facebook channels
- New contact field editing UI with Intercooler modals
- Update RecentMessages view to use new recent messages model
- Remove now unused indexes on FlowStep
- Adds data migration to populate FlowPathRecentStep from existing Flow Steps
- Introduce new model, FlowPathRecentStep that tracks recent steps from one flow node to another. This will replace the rather expensive index used to show recent flow activity on a flow path.
- Log any exceptions encountered in Celery tasks to Raven
- Tell user to get pages_messaging_subscriptions permission for their FB app
- Replace unicode non breaking spaces with a normal space for GSM7 encoding (Kannel only)
- Add migrations for custom indexes (existing installs before v3 should fake these)
- fix styling on loader ball animation
- Fix issue causing flow run table on flow dashboard to be very slow if a flow contained many responses
- Refactor JSON responses to use native Django JSONResponse
- Dont use proxy for Dart Media and Hub9, expose IPs to whitelist
- Fixes DartMedia channel for short codes
- Remove django-celery as it is unneeded, also stop saving Celery tombstones as we now store all task state (ContactImport for example) directly in models
- IMPORTANT: This release resets all Temba migrations. You need to run the latest migrations from a version preceding this one, then fake all temba migrations when deploying:
% python manage.py migrate csv_imports
% python manage.py migrate airtime --fake
% python manage.py migrate api --fake
% python manage.py migrate campaigns --fake
% python manage.py migrate channels --fake
% python manage.py migrate contacts --fake
% python manage.py migrate flows --fake
% python manage.py migrate ivr --fake
% python manage.py migrate locations --fake
% python manage.py migrate msgs --fake
% python manage.py migrate orgs --fake
% python manage.py migrate public --fake
% python manage.py migrate reports --fake
% python manage.py migrate schedules --fake
% python manage.py migrate triggers --fake
% python manage.py migrate ussd --fake
% python manage.py migrate values --fake
% python manage.py migrate
- Django 1.10
- Guardian 1.4.6
- MPTT 0.8.7
- Extensions 1.7.5
- Boto 2.45.0
- Django Storages 1.5.1