RapidPro 6.4 Release

154 views
Skip to first unread message

Nic Pottier

unread,
Jul 19, 2021, 5:25:37 PM7/19/21
to rapidpro-dev, rapidpro
Hi all,

After a few weeks of bug bashing and small tweaks, we've released RapidPro 6.4. Check the latest versions needed for the various components in the RapidPro README:

https://github.com/rapidpro/rapidpro

Big thanks to all our UNICEF and TextIt users for helping support Nyaruka's ongoing work!

The primary focus for this release has been building out our internal ticketing support. You can now add an internal ticketer (this will be added automatically to every workspace in 6.5) and have the ability to open/close/reply to tickets natively in RapidPro using a slick new UI for replying and managing tickets. Along with this we've added a new user type, Agents, which have only the ability to view and reply to tickets.

We've also augmented triggers in two important ways to dovetail with the new ticketing features:

  1. You can now choose a set of groups to Exclude from a keyword trigger. This can be used to say, add a contact to a group, say called "Human Handled", when you open a ticket to make sure they don't trigger particular keywords on your system when interacting with agents.
  2. You can trigger a flow when a ticket is closed, which can then be used to remove the contact from the same group to resume automated handling.

We're now beginning on 6.5-6.6 development which should ship in early November. Our focus is to continue building out ticketing features to make it a compelling option for those currently using CasePro.

If you have specific requirements or comments along those lines, do let us know!

Detailed Changelog

RapidPro / Editor

  • Fix pagination on the webhook results page
  • Update flow editor to fix not being able to play audio attachments in simulator
  • Update translations from transifex
  • Improve contact field forms
  • Improve wording on forms for contact groups, message labels and flow labels
  • Improve wording on campaign form
  • Fix attachment button when attachments don't have extensions
  • Add missing ticket events to contact history
  • Parameterized form widgets. Bigger, darker form bits.
  • Control which users can have tickets assigned to them with a permission
  • Use mailroom endpoints for ticket assignment and notes
  • Add custom user recover password view
  • Drop no longer used Broadcast.is_active field
  • Update indexes on ticket model
  • Add empty ticket list treatment
  • Fix API docs for messages endpoint to mention attachments rather than the deprecated media field
  • Consistent setting of modified_by when releasing/archiving/restoring
  • Add assignee to ticketing endpoints, some new filters and new assignment view
  • Better trigger exports and imports
  • Fix redirect after choosing an org for users that can't access the inbox
  • Fix default content type for pjax requests
  • Tweak queuing of flow starts to include created_by_id
  • Refactor scheduling to use shared form
  • Add exclusion groups to scheduled triggers
  • Drop Language model and Org.primary_language field
  • Add ability to reverse results for runs/contacts API endpoints
  • Better validation of invalid tokens when claiming Zenvia channels
  • Fix languages formax to not allow empty primary language
  • Read org languages from org.flow_languages instead of Language instances
  • Fix closing and reopening of tickets from API
  • Add better labels and help text for groups on trigger forms
  • Load ticket events from database for contact histories
  • Add support for closed ticket triggers
  • Add Org.flow_languages and start populating in Org.set_languages
  • Enable exclusion groups on triggers and make groups an option for all trigger types
  • Add ticket note support to UI
  • Make flow session output URL have a max length of 2048
  • Add output_url field to FlowSession
  • Rework trigger create forms to make conflict handling more consistent
  • Iterate through all pages when syncing whatsapp templates
  • Update components to single mailroom resource for completion
  • Only retry 5000 messages at a time, prefetch channel and fields
  • Fix filtering of flows for new conversation triggers
  • Fix ordering of channel fields on triggers
  • Optimize message retries with a perfect index
  • Convert channels to soft dependencies
  • Fix Dialog360 WA templates sync
  • Migration to clear next_attempt for android channels
  • Resend messages using web endpoint rather than task
  • Add reusable view for dependency deleting modals and switch to that and soft dependencies for ticketers
  • Fix org deletion when broadcasts have parents and webhook results have contacts
  • Fix channel log icons and disallow message resending for suspended orgs
  • Add migration to populate Flow.has_issues
  • Add migration to populate template namespace
  • Queue mailroom task to do msg resends
  • Fetching and saving revisions should return flow issues as separate field
  • Move tickets endpoint to tickets crudl
  • Add task for releasing of orgs
  • Fix contact imports always creating new groups
  • Migration to fix escaped nulls in flow revision definitions
  • Override language names and ensure overridden names are used for searching and sorting
  • Fix serializing JSON to send to mailroom when it includes decimals
  • Restrict org languages to ISO-639-1 plus explicit inclusions
  • Move Twilio, Plivo and Vonage number searching views into their respective channel packages
  • Optimize query for fetching contacts with only closed tickets
  • Release contact imports when releasing groups
  • Make groups searchable on contact update page
  • Rework DT One and Chatbase into a new integrations framework
  • Add support for Zenvia SMS
  • Fix flow update forms to show correct fields based on flow type
  • Add group name field to contact imports so that it can be customized
  • Rename Nexmo to Vonage, update icon
  • Fix SMTP server settings views to explain that we don't send emails if you don't have a config
  • Add API endpoint to fetch tickets filterable by contact
  • Clarify terms for exports vs downloads
  • Add flows import and flow exports links in the flows tab
  • Add support for YYYY-MM-DD date format
  • Add support to exclude active contacts in other flows when starting a flow on API
  • Remove unsupported channel field on broadcast create API endpoint
  • Add Start Flow modal to contact read page
  • Update Django and Django REST Framework
  • Convert to poetry
  • Add Zenvia WhatsApp support
  • Update to latest celery 4.x
  • Update redis client to latest v3.5.3

Courier

  • up max request size to 1M
  • Include filename when sending WhatsApp attachments
  • Support using namespace from the template translation
  • Add is_resend to Msg payload to allow for resending messages manually
  • Do not verify the SSL certificate for Bongo Live
  • Update BL to remove UDH parameter and use HTTPS URL

Mailroom

  • Support ticket open events with assignees
  • Add endpoints for ticket assignment and adding notes
  • Include args in BulkQuery error output
  • Fix handling of inbox messages to also update open tickets
  • 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
  • Read session files from S3 storage when org configured to do so
  • Ignore contact tickets on ticketers which have been deleted
  • Add ticket events and insert when opening/closing/reopening tickets
  • Introduce runtime.Runtime to capture config/db/storage variables
  • 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
  • Add task to resend messages
  • Smarter loading for cache misses on org assets
  • Simplify caching, keep orgs for 5s, reload everything
  • Fail expirations that are no longer the active session

Indexer

  • Fix creating of location keyword fields when values have punctuation

Archiver

  • Don't load org languages when archiving

--
Nic Pottier                                    ni...@nyaruka.com
Nyaruka Ltd                                  http://nyaruka.com/

Rowan Seymour

unread,
Jul 19, 2021, 5:57:19 PM7/19/21
to Nic Pottier, rapidpro-dev, rapidpro
Couple of notes on deploying this:

Poetry

We've moved to poetry for managing dependencies. So you'll need to install that on the server and instead of installing dependencies using pip install -r pip-freeze.txt, run poetry install. The good news is that it makes adding/updating/removing dependencies considerably easier than the pip-tools stuff we were using previously.

Languages

There's a new setting called NON_ISO6391_LANGUAGES. Several years ago we switched from 2-letter ISO-639-1 codes to 3-letter ISO-639-2 codes. This was necessary because many of the languages UNICEF country offices want to translate flows into don't have 2-letter representations. But 1) it means users searching for a language like English have to search through a bunch of options like Middle English and 2) sometimes when integrating with external systems we need to convert a flow/contact language to a 2-letter representation which we can't if it doesn't exist. So NON_ISO6391_LANGUAGES is a way to restrict which languages that don't have 2-letter codes you want to allow on your deployment.

We've included a management command you can run to see which languages your users are using which don't have 2-letter codes, and how to configure your deployment so that those languages are still supported:

rapidpro % ./manage.py non_iso6391_langs
The following orgs currently use non-ISO-639-1 languages:

My Cool Org (#1)
  * eng en English
  * pid -- Piaroa


Add this Django setting to continue to allow orgs to use those languages:

NON_ISO6391_LANGUAGES = {
    "pid",  # Piaroa
}

-Rowan

--
You received this message because you are subscribed to the Google Groups "rapidpro" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rapidpro+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rapidpro/CAH7-FAtj-O%3DufLsoHLJPofJFFK1Z4MkOLVbvxx9cr4ncKt81GQ%40mail.gmail.com.


--
Rowan Seymour | +593 979099233 | @rowanseymour

Thierno Ly

unread,
Oct 5, 2021, 7:10:23 AM10/5/21
to rapidpro
Hello Sir how are you doing?
I hope you are, can you help me to join sign in rapidpro.
Reply all
Reply to author
Forward
0 new messages