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')
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' OR
(payload ->> 'apollo:hqCity') = ('San Francisco')
where 'apollo:hqCity' is the enrichment provider variable.
Note: each enrichment provider variable may differ and should be checked before using in expressions.
Filter only clean emails:
To filter only emails which are clean after using an email validation ptovider use this expression:
(
payload ->> 'emailVerificationStatus' in ('clean', 'unknown')
)
or (payload ->> 'emailVerificationStatus' is null)
FILTER DATA FROM 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.
CLASSIFICATION AI AGENTS:
Where citations and reasons are toggled off
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:XXX') IN ('SAAS', 'Manufacturing', 'Services')where SAAS, Manufacturing and Services are your classification types in Computed AI agent XXX.
Filter by job role persona
Include only specific personas identified by the persona classification AI agent.
payload->> 'computed:XY' in ( 'Travel', 'Finance', 'HR' )
When citations and reasons are turned on:
Filtering for one variable:
payload -> 'computed:XXX' ->> 'category' in ('Startup', 'B2B Startup')
In classification agents with citations and reasons the values are stored in 'category' so it is important to refer to that in expressions.
Eg: see when citations and reasons are turned on in an AI agent:
CONDITIONAL BRANCHING BASED ON TAP AI AGENTS' ANSWERS
In Tapistro, you can use expressions to segment data stored in AI Agents.
To branch based on affirmations of Q&A AI agents' answers:
Upon building a Q&A agent you may want to branch your Journey flow based on answers.For example: In a news Q&A agent, you can create a question of 'if the news is present'. If such questions are there, you can use these expressions in your conditional branch step within a Journey and create decision making branches:
Condition 1:payload -> 'computed:XXX' ->> 'Is recent news present?' = 'yes'Condition 2:
payload -> 'computed:XXX' ->> 'Is recent news present?' = 'no'
2. To branch based on industries/ values stored in Classification AI Agents:
Upon building and using a Classification AI Agent in you Tapistro Journey you may want to segment accounts based on certain categories such as industries/country etc.
For example: In an Industry classification AI Agent, you have created 3 industries. You can use a conditional branch step and segment all accounts based on the classification:
Condition 1: SAAS - payload ->> 'computed:XXX' = 'SAAS'
Condition 2: Services - payload ->> 'computed:XXX' = 'Services'
Condition 3: Manufacturing- payload ->> 'computed:XXX' = 'Manufacturing'
This will segment all incoming accounts into the conditional branch in 3 different segments. You can now create 3 branches that will fulfil these conditions.
3. To branch based on whether account is present in a particular CRM list or not:
As you collect signals or build account list, you may want to segment and branch your accounts based on lists. In such cases you may want to refer to these expressions built within a conditional branch step:
Condition 1: Account is in list- payload ->> 'hubspotListId:XXX' IS NOT NULL
Condition 2: Account is not in list- payload ->> 'hubspotListId:XXX' IS NULL
Here this is an example of using a HubSpot CRM list ID.
If you face trouble, reach out to Tapistro support for help in filter expressions via the chat messenger.

