Retrieve search queries - Inbox block

Hello everyone, in order to make my product more qualitative and adapt it to my customers, I would like to retrieve the search queries when the Inbox Block displays “No results found”, i.e. when I have not results to offer.

I’ve seen changes in the DOM with some div disappearing, but I don’t know how to get that back. an idea ? Behind I would like to do some statistics in order to know what is the next content to develop

Btw, I found this topic without solution

Thanks :slight_smile:

Someone would have any idea ? Thanks :slight_smile:

@lea this might help you I think Event Listener for Dynamic Lists (React Version) - #3 by artur

Thanks for answer @artur, but I’m not doing it by myself. I’ll wait for a more experienced user to come along

I’d be interested in capturing search terms that lead to a 0-result too; in an ideal world they’d be tracked as such in GA, but that might require a query parameter in the URL. Following this topic in case a solution without too much custom coding comes up!

Solution here

Just replace your WEBHOOK_URL and NAME_OF_INBOX_BLOCK in the code

Here is the code, This code uses a debounce function and a timer to delay sending search results to a webhook until the user stops typing in a search box for a specified amount of time.

let searchResults = null;
let typingTimer;

const onFilterChange = (e) => {
  // e.detail contains the search data

  // Store the search data in the variable searchResults
  searchResults = {
    filter: e.detail.filter

  // Determine if the user has finished typing
  typingTimer = setTimeout(() => {
  }, 3000); // 3 second delay

const sendSearchResults = () => {
  if (searchResults !== null) {
    console.log('Sending search results:', searchResults);
    // Send data to a webhook via a POST request
    const url = "WEBHOOK_URL";
    let IDuser = window['logged_in_user']['airtable_record_id'];
    const data = {
      filter: searchResults.filter,
      user: IDuser
    fetch(url, {
      method: "POST",
      body: JSON.stringify(data),
      headers: {
        "Content-Type": "application/json"
    .then(response => {
    .catch(error => {

    // Réinitialiser la variable searchResults
    searchResults = null;

setTimeout(() => {
  window.addEventListener('get-records-NAME_OF_INBOX_BLOCK:before', onFilterChange);
}, 1000); // 1000 milliseconds (1 second) delay

If someone wants to improve my code, don’t hesitate and send us the improvements :slight_smile: