Bring!

The Bring! integration allows you to sync your Bring! shopping lists with Home Assistant.

About Bring!

Bring! is a grocery shopping list app that allows users to create shared lists and organize grocery shopping with family, partners, or roommates.

Available as a mobile app on Google Play for Android and the App Store for iOS. Bring! also offers a web version at web.getbring.com.

How you can use this integration

  • Automated notifications: Receive alerts on your phone when essential items are added to your list or when the quantity of items reaches a set value.
  • List updates based on events: Automatically add items to your shopping list when appliances are low on supplies, like dishwasher salt, or need routine maintenance, such as tub cleaner for the washer.
  • Voice control: Use voice assistants connected to Home Assistant to add items to your Bring! list.
  • Geofencing: Receive reminders when you are near a specific store and need to pick up items, based on your location.

Prerequisites

For authentication, the integration requires the email and password of your Bring! account. If you don’t have an account, you can sign up via the mobile app or the web version.

If you signed up using Apple ID, Google Sign-in, or Facebook Login, you will need to create a password to use the integration.

  • On mobile: Open the Bring! app and go to Profile > More settings > Change password.
  • On the web: Visit Settings > Reset password or go directly to Reset Password.

You can still log in with your existing authentication method afterward.

Configuration

To add the Bring! service to your Home Assistant instance, use this My button:

Manual configuration steps

If the above My button doesn’t work, you can also perform the following steps manually:

Configuration parameters

Email

The email address associated with your Bring! account.

Password

The password to log in to your Bring! account.

Sensors

  • Urgent: Shows the number of items tagged with the Urgent badge on the shopping list. Completed items are excluded.
  • On occasion: Displays the count of items marked with the If convenient badge.
  • Discount only: Indicates the number of items tagged with the Offer badge.
  • Region & Language: The sensor can be used for diagnostics. If everything is set correctly, it will display the selected region for the shopping list. If it shows Unknown, the region has not been set properly in the Bring! app.
  • List access: Indicates whether the shopping list is personal (private) or shared (accessible to others).

Actions

You can use the actions from the to-do list to create, update, or delete items on your Bring! shopping lists.

Notifications

The Bring! integration offers an action to send push notifications to the Bring! mobile apps of other members of a shared shopping list. The Bring! mobile app has 4 predefined notification types.

Note

If you want to receive these notifications, you must use a dedicated account, as outlined in the known limitations.

Data attribute Optional Description
target no Target Bring! list(s) whose members should be notified.
message no Type of push notification to send to list members. See Notification types.
item yes Required for urgent_message. Item to include in the message. For example: Attention! Attention! - We still urgently need: Cilantro.

Available notification types

Notification type Name of notification
going_shopping I’m going shopping! - Last chance for adjustments
changed_list I changed the list! - Take a look at the items
shopping_done The shopping is done! - The fridge is well stocked
urgent_message Attention! Attention! - We still urgently need: [Items]

Note

The notification that list members receive differs from the label shown in the Bring! app. This variation depends not only on the recipient’s language settings but also on the sender’s profile name. Additionally, notifications may change with new app updates. Here are some example notifications:

  • name is going shopping for “shopping list name”! Last chance to make changes

  • name went shopping for “shopping list name”! The fridge is well stocked

  • name updated the list “shopping list name”! Take a look at the articles

  • Attention, something’s missing! Please buy item urgently

Sending a going shopping notification

...
actions:
  - action: bring.send_message
    target:
      entity_id: todo.bring_shoppinglist
    data:
      message: going_shopping 

Sending an urgent message notification

Note that for the notification type urgent_message the attribute item is required.

...
actions:
  - action: bring.send_message
    target:
      entity_id: todo.bring_shoppinglist
    data:
      message: urgent_message
      item: Cilantro

Automations

Get started with these automation examples for Bring!, each featuring ready-to-use blueprints!

Grocery shopping reminder 🛒

Get notified when it’s time to go grocery shopping. A notification is sent when your shopping list reaches a set threshold or when urgent items are added.

Example YAML configuration
triggers:
  - trigger: numeric_state
    entity_id: todo.shopping_list
    above: 10
    id: shopping list too long
  - trigger: numeric_state
    entity_id: sensor.shopping_list_urgent
    above: 0
    id: shopping is urgent
actions:
  - choose:
      - conditions:
          - condition: trigger
            id: shopping list too long
        sequence:
          - action:
              - action: notify.notify
                data:
                  message: >-
                    The list is getting long, plan a trip to the grocery shop in
                    the next days
                  title: Shopping needed soon 🛒
      - conditions:
          - condition: trigger
            id: shopping is urgent
        sequence:
          - action:
              - action: notify.notify
                data:
                  title: 🚨 Time to go shopping! 🛒
                  message: Urgent groceries needed! Grab your shopping bag and go!
  - delay:
      hours: 1
mode: single
alias: "Bring!: Grocery shopping reminder 🛒"
description: "Get notified when it's time to go grocery shopping. A notification is sent when your shopping list reaches a set threshold or when urgent items are added."

Data updates

This integration syncs your lists by pollingData polling is the process of querying a device or service at regular intervals to check for updates or retrieve data. By defining a custom polling interval, you can control how frequently your system checks for new data, which can help optimize performance and reduce unnecessary network traffic. [Learn more] the Bring! service every 90 seconds or immediately after an action is performed in Home Assistant, such as adding an item. If you prefer a less frequent update, custom polling interval can also be defined — see Defining a custom polling interval for details.

Known limitations

  • Changes made in Home Assistant are reflected instantly in the Bring! app, while changes in the Bring! app may be delayed by up to 90 seconds due to the polling interval.
  • To receive push notifications in the Bring! app when items are added or removed in Home Assistant, or when triggered by the bring.send_message action, it is recommended to use a dedicated account (such as email:name+ha@example.com) when setting up the integration.

Troubleshooting

The Bring! integration relies on an active internet connection to communicate with Bring!. If you encounter issues, verify that your network connection is stable. Additionally, the Bring! service itself may experience downtime, whether unexpected or due to scheduled maintenance.

  • A 502 - Bad Gateway error (aiohttp.client_exceptions.ClientResponseError: 502, message='Bad Gateway') is known to occur occasionally (1–2 times per day) but is usually temporary. The integration will retry automatically after 90 seconds, so there’s no need to take action.

In any case, when reporting an issue, please enable debug logging, restart the integration, and as soon as the issue reoccurs, stop the debug logging again (download of debug log file will start automatically). Further, if still possible, please also download the diagnostics data. If you have collected the debug log and the diagnostics data, provide them with the issue report.

Remove integration

This integration can be removed by following these steps:

To remove an integration instance from Home Assistant

  1. Go to Settings > Devices & services and select the integration card.
  2. From the list of devices, select the integration instance you want to remove.
  3. Next to the entry, select the three-dot menu. Then, select Delete.