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.
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.
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')
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.
