Okay, I have to admit it, this trick was my wife’s idea 😊

We use Bring! as our shared shopping list app. Thanks to the Apple Watch app, when we’re at the supermarket, we can simply glance at our wrist to see the items on the list, and a single tap removes items we’ve added to the cart. To add items to the list, besides using the app on our smartphones, we use a voice assistant when we’re at home. It’s much more immediate since we can activate it the moment we realize we need something.

Unfortunately, for the past few months, Amazon Echo has no longer allowed the use of third-party apps to manage lists. So instead of saying, “Alexa, add tomatoes to the shopping list,” we now say, “Alexa, open Bring and add tomatoes” (saying “to the shopping list” is redundant here because we only have one list). It’s a minor inconvenience, but manageable.

Every now and then, we share recipes we find online, in our cooking robot’s app, or on Instagram. But we almost always forget to save the ingredients and add them to the shopping list. Even if we do remember, it’s a tedious and repetitive task—manually adding each ingredient along with its quantity. So, we thought: why not let AI handle it?

Process Description

workflow



Step 1: Create Telegram Bot

I chose Telegram for two reasons:


Creating a Telegram Bot is really really simple:



Step 2: Configure Home Assistant

Introduction

kay, I have to admit, I left out a small detail—sorry about that! I didn’t directly use Bring’s official APIs. In fact, I couldn’t find any mention in the official documentation of interacting with a specific shopping list to add, modify, or remove items. The only supported functionality seems to be submitting a recipe and letting Bring’s scraper extract the ingredients. However, the recipe must be in a specific format, likely because Bring doesn’t use AI for scraping, as I did, but instead relies on an algorithm based on a well-defined data structure.

That said, there is a way to interact with Bring using unofficial APIs. In my case, I didn’t spend time researching this further since I had already integrated Bring! into Home Assistant, which made it easy to use HA as a “proxy.”

You’re not obligated to use Home Assistant: if you can find the documentation for the unofficial APIs (I found sometrhing on GitHub but don’t post the link since it may chance), you just need to modify the steps in the following workflow, replacing the Home Assistant REST APIs with Bring’s APIs.

Moreover, my ultimate goal is to replace Amazon Echo as a voice assistant with one (ideally local) powered by AI. In such a scenario, this assistant would interact directly with the To Do List in Home Assistant.

Integrate Bring into Home Assistant

The setup is very straightforward thanks to the Official Bring! Integration. Once configured by logging into Bring! with your account, the lists you’ve set up in Bring! will appear as To Do List in Home Assistant. For instance, in my case, todo.spesa.

Now, any changes to the todo.spesa list will immediately sync with the Bring! app and vice versa.

I’m not showing you how to set up Bring on Amazon Echo or Google Home because — even if it’s useful for everyday use — it’s not a fundamental prerequisite for this process.

Configure Home Assistant API

Very simple: open your configuration.yaml and add the line:

api:

Now you can access to Home Assistant RESTful API calling whe address http[s]://[Home_Assistant_IP]:[port]/api/. Remember to set the http or https procotol accordingly to your setup, and the correct IP and port.

Obtain a Long-Lived Access Token

Log into the frontend using a web browser, go to your profile and under “Security” menu you wull be able to list, create and revoke all the Long-Lived Token associated with your account.



Step 3: Install and configure n8n

As with other complex automations you will find on this site, I used n8n: n8n is an open-source workflow automation tool that allows you to connect various applications and services to automate repetitive tasks without manual intervention. It provides a visual interface where you can design workflows by linking different nodes that represent actions, triggers, or data processing steps.

I installed it in a Proxmox LXC by using the helper script provided by Community-Scripts: this is a very useful Community with many script that will help you many times: if you like them, consider donating to support Angie, tteckster’s wife - the founder and best supporter of the community - too early passed away.



Step 4: Create the automation flow

This n8n workflow integrates a Telegram bot with Home Assistant and uses AI for natural language processing to manage a shopping list. Here’s an overview:


Workflow Description

  1. Trigger:
  1. Authorization Check:
  1. Unauthorized reply, Leave chat:
  1. Get Content Type:
  1. Content Normalization:
  1. Content processing:
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "ingredient": { "type": "string" },
      "quantity": { "type": "string" }
    }
  }
}
  1. Get current items
{ 
  "entity_id": "todo.spesa",
  "status": "needs_action"
}
  1. List new items, List current items
  1. Data Comparison
  1. Add new items to list
{ 
  "entity_id": "todo.spesa",
  "item": "{{ $json.ingredient }}",
  "description": "{{ $json.quantity }}"
}
  1. Update quantity
  1. Publish update to actual items
{ 
  "entity_id": "todo.spesa",
  "item": "{{ $json.message.content.Ingredient }}",
  "description": "{{ $json.message.content.NewDescription }}"
}


Step 5: Chat with your bot

You can directly open a Telegram chat with your bot or add it in a group and promote it to Administrator. In this case remember to update the Group ID in the Check authorized users node in the workflow.



Step 6: Enjoy