Example what to do [badge:Full Example|info]
Step 1 – Point user to entity [navigate:/products|Open Products|shopping-cart]
Open the products section: [navigate:/products|Products]
Add new product: [navigate:/products/new|New Products]
Navigate with a custom icon: [navigate:/devdoc/test-where|Test Filters|play]
Navigate to import screen: [navigate:/devdoc/imports|Imports|upload]
Navigate to mapper: [navigate:/mapper|Mapper|mapper]
Add a product: [navigate:/products/new|Add Product|plus]
Step 2 – Apply a filter
Filter all visible NIKE products:
brand_id = 'code:NIKE' and visibility in ('visible')
Step 3 – (Optional) Mass-update the filtered set
Before exporting, you can bulk-assign an export channel to all matching products:
{
"export_channel": "eshop-de"
}
Step 4 – (Optional) Use AI to enrich descriptions before export
{
"prompt": "Write a short product description suitable for the German market.",
"fields": ["description_de"]
}
Step 5 – Run a query to inspect data
{
"fields": ["code", "name", "price", "visibility"],
"where": "visibility = 'visible'",
"limit": 10
}
Step 5b – Plain query block (no entity, copyable display only)
products(where: "visibility = 'visible'", limit: 10) {
id
code
name
price
}
Step 6 – Import products from a CSV
{
"columns": {
"code": "PRODUCT_CODE",
"name": "PRODUCT_NAME",
"price": "PRICE_EUR"
},
"matchBy": "code"
}
Step 6b – Plain import block (no entity, copyable display only)
{
"columns": {
"code": "PRODUCT_CODE",
"name": "PRODUCT_NAME"
},
"matchBy": "code"
}
Step 7 – Map feed data to products using Mapper
products = '$.items[*]' {
code = 'CODE',
name = 'NAME',
price = 'PRICE'
}
Step 7b – Plain mapper block (no entity, copyable display only)
products = '$.items[*]' {
code = 'CODE',
name = 'NAME'
}
Step 8 – Create an export with this filter
Navigate to export configuration: [navigate:/exports/new|Export configuration]
Use the same filter expression there:
brand_id = 'code:NIKE' and visibility in ('visible')
Step 8b – Plain filter block (no entity, read-only display)
brand_id = 'code:NIKE' and visibility in ('visible')
Placeholders
The article body can reference runtime values using placeholders.
Send a query to the API endpoint for company {companyId}:
POST {HOSTNAME}/api/query
Authorization: Bearer <token>
X-Company-Id: {companyId}
The {HOSTNAME} placeholder resolves to the current application origin (e.g. https://app.productsync.com). The {companyId} placeholder resolves to the current organisation’s ID.
Inline code spans
Use the visibility field to control product availability. Set it to visible, hidden, or catalog.
The endpoint path is /api/v1/products and the method is GET.
Callout boxes
This is an **informational** callout. Use it for tips, notes, and neutral context.
**Warning:** Changing the `matchBy` field after your first import will cause duplicates.
**Tip:** You can combine multiple filters using `and` / `or` operators.
**Danger:** Deleting a feed mapping is irreversible. Make sure you have a backup.
GFM pipe tables
| Field | Type | Required | Description |
|---|---|---|---|
code | string | ✓ | Unique product identifier |
name | string | ✓ | Product display name |
price | number | Base price excluding VAT | |
visibility | enum | One of visible, hidden, catalog |
Multi-language code tabs
tab: JSON
{
"code": "PROD-001",
"name": "Running Shoes",
"price": 99.90
}
---
tab: XML
<product>
<code>PROD-001</code>
<name>Running Shoes</name>
<price>99.90</price>
</product>
---
tab: CSV
code,name,price
PROD-001,Running Shoes,99.90
Numbered steps
1. Open **Products** in the left navigation.
2. Click **Filters** and add `visibility = 'visible'`.
3. Select all matching products using the checkbox.
4. Choose **Mass Update** from the action menu.
5. Set `export_channel` and confirm.
Feature grid cards
card: Real-time sync
icon: refresh-cw
Automatically synchronise product data between your ERP and all connected channels.
card: Flexible mapping
icon: workflow
Map any source field to any target field using the visual Mapper editor.
card: Smart filtering
icon: filter
Use powerful WHERE expressions to target exactly the products you need.
“Try it” CTA button
Try the filter directly: [try:/devdoc/test-where|Open filter playground|play]
Import your first products now: [try:/imports/new|Start import wizard|upload]
Inline badges
The visibility field accepts three values: [badge:visible|success] [badge:hidden|warning] [badge:catalog|info]
This feature is [badge:Beta|warning] and the API is [badge:Stable|success].