Skip to main content

Data Filter Step in Tapistro Journeys

This articles outlines a few examples of data filters that could help enrich your Journeys and build logic in GTM workflow.

Updated over a month ago

In Tapistro, every event or data point comes in as a payload—a structured package of information. The payload ->> attribute format simply means you’re pulling out a specific field from that package (for example, payload->>company_name or payload->>country).

Think of the payload as the container of all details Tapistro captures, and ->> as the way to read individual attributes inside it. This lets you build filters and conditions on precise data points when creating GTM logic.
Create a data filter step type in Tapistro to use the filters.


  • CRM Suppression or Check

Use a Filter node to exclude existing customers or competitors by referencing a CRM list, such as a HubSpot list. Expressions allow Tapistro to check your CRM data, and there’s no restriction on which CRM tools you can connect.

Filter expressions for checking against CRM such as HubSpot could look like:
"payload->> 'hubspotlistId:X' IS NULL AND payload->> 'hubspotlistId:Y' IS NULL"
where X,Y could be the list ID in your CRM.

To check against an account from a source:
payload->>'__sourceName:Competition Accounts' is null

To check against deal stage:
payload ->> 'hubspot:dealStage' in ( '123456', '1234567', 'dealstage/object')


  • To remove data coming from other signals

If you need to exclude or filter out data captured from other signal sources within a specific journey, you can apply a Data Filter to check against this data.

Example expression:

not exists (select 1 from REPORTING_ACTIVATIONS where journey_id in ('XX','XY') AND received_at >= NOW() - INTERVAL '24 hours' AND X_ACCOUNTS.id=REPORTING_ACTIVATIONS.account_id)

where XX, XY are journey ID.


  • Filter by employee size

If you want to exclude or filter data based on employee size within the industries you’ve chosen, add a Data Filter.

A prerequisite is running an account enrichment step or Source Discovery, which brings this data into the system and stores it in a default element.

Example expression:

coalesce(payload->>'employeeRangeMin',payload->>'Employee Range Min', payload->>'Company Employee Range Min')::int >= 50 AND coalesce(payload->>'employeeRangeMax',payload->>'Employee Range Max', payload->>'Company Employee Range Max')::int <= 1500


Where employee count is stored in payload elements such as 'employeeRangeMin' here.


  • Filter basis country:

If you want to include or exclude data based on country, you can apply a Data Filter on the country attribute. This is done if the attribute is stored in 'Country' or 'City'.
If you have used any enrichment provider in the journey the information gets stored in custom variables such as 'apollo:hqCity' . This allows you to focus your journey logic only on records from specific geographies.

Example expression:


payload->>'Country'='United States'

(payload ->> 'apollo:hqCity') = ('San Francisco')

where 'apollo:hqCity' is the enrichment provider variable.


  • To Filter data from Computed AI Agents

You can apply a Data Filter using attributes stored in Tapistro’s computed AI agents. Each AI agent has a unique ID (computed:X) where enriched attributes are stored, such as industry, company type, or persona etc.

  1. Filter by company type
    If you have an AI agent to classify B2B and B2C company-
    (payload->> 'computed:X') = ('B2BCompany')
    where 'B2BCompany' is the name of the evaluated value.

  2. Filter by industry type
    If you have an AI agent to classify industries in your ICP-
    (payload->> 'computed:Y' IS NULL OR payload ->> 'computed:Y' != 'ABC Industry')

  3. Filter by job role persona

    Include only specific personas identified by the persona classification AI agent.
    payload->> 'computed:XY' in ( 'Travel', 'Finance', 'HR' )


    If you face trouble reach out to Tapistro support for help in filter expressions via the chat messenger.

Did this answer your question?