Giter Club home page Giter Club logo

rapidpro's Introduction

TextIt

Build Status codecov

TextIt is a hosted service for visually building interactive messaging applications. You can signup at textit.com or host it yourself.

Stable Versions

The set of versions that make up the latest stable release are:

Versioning

Major releases are made every 6 months on a set schedule. We target January as a major release (e.g. 9.0.0), then July as the stable dot release (e.g. 9.2.0). Unstable releases (i.e. development versions) have odd minor versions (e.g. 9.1.*, 9.3.*). Generally we recommend staying on stable releases.

To upgrade from one stable release to the next, you must first install and run the migrations for the latest stable release you are on, then every stable release afterwards. For example if you're upgrading from 7.4 to 8.0, you need to upgrade to 7.4.2 before upgrading to 8.0

Generally we only do bug fixes (patch releases) on stable releases for the first two weeks after we put out that release. After that you either have to wait for the next stable release or take your chances with an unstable release.

rapidpro's People

Contributors

awensaunders avatar cloves23 avatar dependabot[bot] avatar dodobas avatar edudouglas avatar ericnewcomer avatar erikh360 avatar ewheeler avatar hudsonbrendon avatar jcbalmeida avatar jofomah avatar johncordeiro avatar jpaidoussi avatar koallann avatar matmsa27 avatar musamusa avatar nicpottier avatar norkans7 avatar nullcode avatar rasoro avatar robi9 avatar rowanseymour avatar smn avatar susanm74 avatar teehamaral avatar transifex-integration[bot] avatar tybritten avatar vctrferreira avatar xkmato avatar ycleptkellan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rapidpro's Issues

Don't trim flow starts, let archiver delete them

Trimming flow starts requires updating all the flow runs with start=None which is expensive. Since we don't create too much of these we can have archiver delete them in the same way that it deletes broadcasts for messages.

Channel types extra views not using new UI

Describe the bug
New UI not supported for WhatsApp templates page and sync logs page
URL as /channels/types/whatsapp_cloud/[UUID]/sync_logs /channels/types/whatsapp_cloud/[UUID]/templates
So any extra views in the channel types

To Reproduce
Steps to reproduce the behavior:

  1. Go to a WhatsApp channel
  2. Click on the menu
  3. Choose message templates
  4. Get page with the old UI

Expected behavior
The page to be using the new UI

Screenshots
Monosnap RapidPro - Visually build nationally scalable mobile applications 2023-01-31 19-35-30

Desktop (please complete the following information):
Chrome

Additional context
None

Screen freezes while seeing revision history

Describe the bug
When seeing the revision history, the screen freezes and i can't scroll to see the nodes below

To Reproduce
Steps to reproduce the behavior:

  1. Click on revision history button
  2. Select one time stamp

Expected behavior
It should allow me to scroll to see other nodes

Screenshots
image

Desktop (please complete the following information):

  • OS: MacOS Ventura 13.1
  • Browser: Chrome 109

Allow deleting of individual archived triggers

  • Deleting the trigger should warn the user first and ask to confirm or cancel
    • If there’s a flow, and there’s a trigger for that flow, we should allow deleting the flow and delete the trigger along with it
  • Ex to model deleting triggers off of - deleting a field
  • No need to delete anything besides the trigger

Save flow results is not working in the new UI

Describe the bug
While saving a result in my flow using addition, the action did not execute.
The next action as well, the contact completed the flow.
To Reproduce
Steps to reproduce the behavior:

  1. Create the flow
  2. Collect a number and name the results (results.score)
  3. Go to 'Save flow results'
  4. Click on the 'result drop-down' and select the saved results (score)
  5. Click on value and enter '@(results.score + 1)' and click ok
  6. Send a message '@results.score'
  7. Start the flow
  8. See error

Expected behavior
When starting the flow I expect to enter a number, and the flow to return the same number + 1
Screenshots
No screenshot
Desktop

  • Browser chrome, safari

Additional context
Add any other context about the problem here.

Can't create new External Channel

Describe the bug
When submitting the form to create a new channel, you are left with a blank screen.

To Reproduce
Steps to reproduce the behavior:

  1. Go to Settings
  2. Click on New Channel
  3. Select External API
  4. Fill in a phone number and nothing else
  5. Click Save
  6. Browser replaces entire page with a 405 error

Expected behavior
The page should reload with a validation error for missing Send Url

Screenshots
Screenshot 2023-01-25 at 2 00 18 PM

Other info
Works as expected in the legacy ui

No feedback when failing to archive a flow

Describe the bug
No feedback when failing to archive a flow, missing toastr library.

To Reproduce
Steps to reproduce the behavior:

  1. Create Flow
  2. Create a Campaign Event that starts that flow
  3. View a flow list page with that flow
  4. Check the box next to the flow, Select archive
  5. Nothing happens except a console error for missing library

Expected behavior
Either the flow is archived (archiving the event too?) or we provide some kind of in-page feedback.

Console log

VM21417:69 Uncaught ReferenceError: toastr is not defined
    at Object.success (<anonymous>:69:11)
    at j (jquery.js:3047:30)
    at Object.fireWith [as resolveWith] (jquery.js:3159:7)
    at x (jquery.js:8183:14)
    at XMLHttpRequest.<anonymous> (jquery.js:8530:9)

Scheduled broadcasts against specific URNs don't send

Describe the bug
If you scheduled a broadcast by searching for a phone number, we save that into .raw_urns on the broadcast, presumedly for mailroom to create, but that never happens. Mailroom only looks at the .urns field so no messages are sent.

Raw URNs however do work with regular broadcasts. RP saves the URNs to .raw_urns but queues the broadcast task to mailroom with the urns in urns in the JSON. Mailroom never reads the saved broadcast.

Flows notes

Describe the bug
In a flow, created a notes and type some text in it then change the color fo the note.
After reloading the text was not saved.

Remove hardcoded javascript method names in content menu items

remove the ContentMenu add_js on_click and link_class props, so that the content menu item's action is driven by checking the element's id, and then calling the relevant javascript method defined directly within the template (and not hardcoded within the content menu item)

Transparency issue with content menu on editor page

Describe the bug
Can see the header line underneath the open content menu

To Reproduce
Steps to reproduce the behavior:

  1. Go to editor page
  2. Open menu

Expected behavior
No bleed through of transparency

Screenshots
Screenshot 2023-01-04 at 11 21 18 AM

Exporting flows results in 405

Describe the bug
After choosing a flow to export, it does not execute

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'flow's tab'
  2. Click on 'the menu bar'
  3. Click 'export'
  4. Select what to export
  5. Click 'export'
  6. See error

Expected behavior
Recieve a link in my email with the JSON file.

Screenshots
Screen Shot 2023-02-02 at 14 50 30

Desktop:

  • Browser: chrome, safari

Additional context
none

Adding Vonage (Nexmo) on staging workspace

Describe the bug
When adding the channel, saving the API key and secret logged me out of the workspace.
To Reproduce
Steps to reproduce the behavior:

  1. Go to 'Setting'
  2. Click on 'New channel'
  3. Scroll down to 'Vonage'
  4. Click on it
  5. Enter the API key
  6. Enter the API secret
  7. Click save
  8. See error

Expected behavior
Taken to 'Connect a phone number' page to choose a number

Screenshots
Screen Shot 2023-03-15 at 12 43 16
Screen Shot 2023-03-15 at 13 08 26

Desktop (please complete the following information):

  • Safari (Second screenshot)
  • Chrome (First Screenshot)

Additional context
I have noticed the same behavior on production, on both UIs

Attaching two images with no caption misses an image

Describe the bug
If I attach two images from an MO in Telegram but do not include a caption, I only see one message with a single attachment arrive in RapidPro. While I suspect this is a courier issue, I know mailroom coordinates with courier on inbound attachment retrieval, so putting this here.

To Reproduce
Steps to reproduce the behavior:

  1. Add or use existing Telegram Channel
  2. Send an inbound message with two images but no caption
  3. Observe only one message in the contact history

Expected behavior
I would think this should be a single message with multiple attachments. We should also make sure it is consistent when a caption is provided (ie, single message with text and two image attachments)

Additional Context
In the courier log multiple message receive events:

  • The msg_uuid is the same for both events
  • The msg_id is 0 for the second image
INFO[0027] msg received  channel_uuid=xxx elapsed_ms=932.5495 msg_attachments="[https://api.telegram.org/file/botxxx/photos/file_68.jpg]" msg_id=192 msg_text= msg_urn="telegram:25028612" msg_uuid=31d21bee-8977-4f28-a1de-d6f02834924c url=/c/tg/xxx/receive
INFO[0028] msg received  channel_uuid=xxx elapsed_ms=579.494875 msg_attachments="[https://api.telegram.org/file/botxxx/photos/file_69.jpg]" msg_id=0 msg_text= msg_urn="telegram:25028612" msg_uuid=31d21bee-8977-4f28-a1de-d6f02834924c url=/c/tg/xxx/receive

Trigger Deletion

Discussed in #4373

Originally posted by ericnewcomer March 1, 2023
Today users can only archive triggers and can never fully delete them. This seems unnecessarily restrictive and makes it harder for them to keep things tidy in their account.

No error message if you schedule a message that will never be sent

Describe the bug
If you can schedule a message for a datetime in the past, and if the repeat is Never, then you end up with a message that will never be sent.

To Reproduce
Steps to reproduce the behavior:

  1. Go to Inbox > Scheduled > Schedule Message
  2. Select a date in the past (I did this accidently because I didn't notice the workspace timezone wasn't my actual timezone)
  3. Select Repeat = Never
  4. Save

Expected behavior
I don't think we want to allow creating a scheduled message which will never send so that should be a form validation error.

Accessing globals on new UI

Describe the bug
No link too get to the globals

Expected behavior
Should that be on the workspace formax sections?

Bulk action selection not hiding title in old ui

Describe the bug
Page title always visible when selecting items

To Reproduce
Steps to reproduce the behavior:

  1. Go to flows
  2. Click on checkbox for any flow
  3. Page title is visible, breaking layout in old ui

Expected behavior
Page title should hide/show on toggle

Screenshots
Screenshot 2023-02-27 at 3 24 34 PM

Enable country location in flows

Describe the bug
When choosing a country used for location value, there is no drop-down appearing.

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'settings page'
  2. Click on 'Choose a country to enable location support in flows'
  3. Click the input bar
  4. See error

Expected behavior
Have a drop-down of countries to choose from.
Screenshots

location.country.mp4

Browser:
-Safari
-chrome

Additional context
none

External links for channel claim page are not working

Describe the bug
When clicking on the external link the page keeps loading.
To Reproduce
Steps to reproduce the behavior:

  1. Go to 'settings'
  2. Click 'new channel'
  3. Click on 'telegram
  4. click the embedded link

Expected behavior
Taking me to the embedded link page

Screenshots

screencast.2023-02-08.16-07-26.mp4

**Desktop **

  • Browser [chrome, safari]

Additional context
Same behavior for:
Twilio,
Twilio messaging service,
Facebook,
Instagram,
Africa's talking,
Twilio whatsapp,
360Dialog WhatsApp,
Zenvia WhatsApp,
discord,
Jiochat,
Kaleyra WhatsApp,
LINE,
Rocket.Chat,
Twitter,
Viber,
VK,
Wechat,
Bandwidth,
Clickatell,
I2SMS,
Infobid,
Jasmin,
Junebug,
Justcall,
Kannel,
Mblox,
Pilvo,
Zenvia SMS,
Firebase Cloud Messaging,
FreshChat

Rolling Twilio keys breaks channels without recourse

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Add Twilio keys to account and add a channel
  2. Roll Twilio keys
  3. Update org config with new Twilio keys
  4. Send messages with existing channel from step 1

Messages aren't delivered with errors that the from number is not part of the account. When channels are added, the current account level twilio config is stored on the channel. When updating the account level config, the existing channel is not updated with the new keys.

Expected behavior
We need to either self-cure or give the user a way to fix their channels without deleting and recreated them.

Unable to edit Twilio auth token

Describe the bug
When updating the auth token for a Twilio channel, the Account SID (which is correctly immutable) returns validation for being required. It probably should not be required here since it isn't an editable field.

To Reproduce
Steps to reproduce the behavior:

  1. Add twilio channel
  2. Edit channel and update the auth token

Expected behavior
Should update the auth token

Screenshots
Screenshot 2023-06-28 at 12 31 36 PM

Broken refresh after labelling messages

To Reproduce
Steps to reproduce the behavior:

  1. Go to Failed messages
  2. Go to Flows messages
  3. Label a message

The message list refreshes to show Failed messages, but the page title says Flows

Add contacts to group from a flow

Describe the bug
The action has failed

To Reproduce
Steps to reproduce the behavior:

  1. Go to the flow
  2. Click on 'add contact to a group' action
  3. Select a group or create it and click 'ok'
  4. See error

Expected behavior
After clicking 'ok' I expected the action to be added to my flow
Screen recording

screencast.2023-02-13.15-38-06.mp4
screencast.2023-02-13.15-39-07.mp4

Browser:
Chrome

Additional context
When opening other flows, the flow editor shows the 'add to group' action and it can not be canceled. See recording 2
The action can be added from Safari.

When updating contacts in bulk, it duplicates the URN field

Describe the bug
When updating contact fields in bulk using the Import Contacts feature on RapidPro, the contacts are updated but it appears to duplicate the URN field. This happens when a contact's URN value is updated.
image

To Reproduce
Steps to reproduce the behavior:

  1. Go to the Contacts page
  2. Export the contacts
  3. On the Excel sheet, update one of the contact fields which is a URN field
  4. Import the Excel file back to RapidPro
  5. There will be two URN fields created as shown in the screenshot above

Expected behavior
It should replace the contact field that was updated

Facebook recurring notifications

Discussed in #4217

Originally posted by ericnewcomer January 3, 2023

Facebook recently opened up their recurring notifications API. This is a way to get ongoing opt-in at regular intervals to allow outbound messages to be sent. This likely represents a replacement of the tag attribute / notification type.

This likely necessitates formalizing the concept of opt-in at the platform level with a way to configure opt-in requests and channels with a way to utilize it. Or maybe this all belongs at the Facebook channel level and the configuration exists therein. In any case, general flow is:

To send daily, you need to get weekly opt-in.
To send weekly, you need monthly opt-in.
To send monthly, you need yearly opt-in.

More here:
https://developers.facebook.com/products/messenger/recurring-notifications/

Additionally, the WhatsApp 24 hour messaging window requiring a template might fit into this recurring opt-in model.

The challenge here is how / where to abstract this functionality.

Additionally, this is likely a critical piece for U-Report going forward.

from: rapidpro#1673

Inline menu items don't refresh

Describe the bug
Inline menu items don't refresh

To Reproduce
Steps to reproduce the behavior:

  1. Go to Flows
  2. Select New Label from content menu
  3. Create menu
  4. New label doesn't in menu

Expected behavior
New label should be visible. Counts also should adjust when labeling / unlabeling flows.

Additional context
Calling refreshMenu from the console doesn't change the behavior. Likely a bug in temba-menu.refresh

Join Group triggers don't work

Describe the bug
The keyword is being received in Inbox instead of entering the contact in a flow.

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'trigger' tab
  2. Create a 'new trigger'
  3. Scroll down to 'create a message keyword that allows people to join a group'
  4. Add a message
  5. Test the keyword with a channel
  6. See the error

Expected behavior
Seeing the contact

Screenshots
No screenshot
Desktop (please complete the following information):

  • Browser: chrome, safari

Additional context
Contact link that I tested with https://textit.staging.nyaruka.com/contact/read/e51aca92-9d88-42a9-8ba6-8bb5cadbc380/?tab=0

Formax won't open after visiting logs

Describe the bug
A clear and concise description of what the bug is.

To Reproduce

Have at least one channel with at least one recent message.

Steps to reproduce the behavior:

  1. Go to Settings
  2. Click on Channel
  3. Click on the count of messages
  4. Click on a message to view the log
  5. Click on the workspace name under Settings (on the menu)
  6. Click on the first formax item

Expected behavior
Formax opens

Screenshots
Nothing happens

Additional context
I believe this occurs because of a javascript error on the log page.

VM9305:3 Uncaught ReferenceError: prettyPrint is not defined
    at HTMLDocument.<anonymous> (<anonymous>:3:7)
    at j (jquery.js:3047:30)
    at Object.add [as done] (jquery.js:3093:7)
    at o.fn.ready (jquery.js:3326:25)
    at new o.fn.init (jquery.js:2768:16)
    at o (jquery.js:78:10)
    at <anonymous>:2:5
    at temba.js:486:24
    at Array.forEach (<anonymous>)
    at setInnerHTML (temba.js:478:48)
    at (index):2961:11

Page titles don't update

To Reproduce
Steps to reproduce the behavior:

  1. Click messages
  2. Click flows

Expected behavior
Page title should change to reflect

Send email action in the new UI

Describe the bug
In my flow, I tried sending an email but I do not see the email.
To Reproduce
Steps to reproduce the behavior:

  1. Go to 'Flows'
  2. Click on 'new flow'
  3. Start building the flow. Scroll down to 'send email' action
  4. Start the flow
  5. Go to the emails, See error

Expected behavior
Seeing the email in my inbox
Screenshots
none
Browser:

  • Browser: chrome, safari

Additional context
none

Missing Channel Icons

When looking at a channel page in new interface, not all icons appear as they should.

Steps to reproduce the behavior:

  1. Go to this channel or this one in U-Report Ukraine.
  2. See icon

Screen Shot 2023-02-23 at 2 48 58 PM

  • iOS
  • Browser Chrome
  • Version 107.0.5304.121

Allow deleting of groups which are used by triggers

  • Deleting the group should warn the user first and ask to confirm or cancel
    • Ex - Create a flow with a scheduled trigger - add an “Add to group” node specifying group X - delete group X
  • Deleting the group should also delete the trigger
    • Ex - Delete a flow with a trigger

Group Deletion

Discussed in #4372

Originally posted by ericnewcomer March 1, 2023
Users should be able to delete groups and face the consequences of that later.

This implies:

  • Campaigns existing without groups (and having a 'issues'?)
  • Triggers either dropping groups designations or keeping them with an issue
  • Probably other things I'm not thinking of

Help button doesn't work on Chrome (new UI)

Describe the bug
The help window does not show up after clicking help

To Reproduce
Steps to reproduce the behavior:

  1. Log into your workspace in chrome
  2. Click on the 'Help' icon
  3. See error

Expected behavior
Help window to open so I chat with an agent

Screenshots
Screen Shot 2023-03-01 at 14 27 18

Desktop:

  • Browser: chrome

Additional context
None

Can not connect a Facebook/Instagram channel.

Describe the bug
When adding my Facebook channel I am taken to Facebook page saying "app not active"
To Reproduce
Steps to reproduce the behavior:

  1. Log into my Facebook account
  2. Clicking “add Facebook page” from textit

Expected behavior
Being taken to Facebook to confirm my login, then select a page to connect to textit.

Screenshots
Screen Shot 2023-01-23 at 14 24 53

Browser:
Chrome
Safari

Additional context
Same error when adding Instagram channel

Scheduled triggers that are archived create events

To Reproduce

  1. Create a scheduled trigger for a week in the future to launch any flow against the Open Tickets group.
  2. Archive the trigger
  3. Open a ticket for a contact that has no tickets or events
  4. Refresh that contact page
  5. A new upcoming event for the archived schedule trigger is shown

Expected behavior
There should be no new events

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.