Custom Channels
Custom channels let you define your own feed structure and format, giving you full control over field names, data layout, and output format. Unlike built-in channels (such as Facebook or Google) which have predefined fields, custom channels are entirely configured by you.

When to Use Custom Channels
Custom channels are useful when:
- You need to export to a platform not supported by Feedr's built-in channels
- A marketplace or partner requires a specific format you can't achieve with a built-in channel
- You want to send product data to internal systems like an ERP, PIM, or inventory tool
- You need full control over field names, structure, and output format
- You want to generate multiple formats (XML, CSV, JSON) from a single channel definition
Creating a Custom Channel
- Navigate to your shop in the sidebar
- Click Custom Channels
- Click Create in the top right
- Enter a title and select one or more output formats

You can select multiple formats (XML, CSV, JSON) for a single channel. Each format has its own configuration options, so you can tailor the output for different consumers from a single channel definition.
Supported Data Formats
| Format | Best for | Extension |
|---|---|---|
| XML | Ad platforms, marketplaces, structured data | .xml |
| CSV | Spreadsheets, simple imports, flat data | .csv |
| JSON | APIs, modern integrations, nested data | .json |
Configuring XML
The XML format gives you control over the document structure, namespaces, and element wrapping.

XML Options
| Option | Description |
|---|---|
| Wrapper elements | Root element name. Can be nested multiple levels (e.g., rss → channel). |
| Item element | The element wrapping each product. Defaults to item. |
| Attributes | Key-value pairs added to wrapper elements (e.g., version="2.0"). |
| Namespaces | XML namespace declarations — map a prefix to a URI (e.g., g → http://base.google.com/ns/1.0). |
| Static children | Hardcoded child elements with a name, value, and optional CDATA wrapping. Useful for metadata like <title>My Feed</title>. |
Example XML Output
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title>My Product Feed</title>
<item>
<name>Blue T-Shirt</name>
<price>29.99</price>
<description><![CDATA[A comfortable blue t-shirt]]></description>
</item>
<item>
<name>Red Hoodie</name>
<price>59.99</price>
<description><![CDATA[A warm red hoodie]]></description>
</item>
</channel>
</rss>
Configuring JSON
The JSON format lets you control the structure of the JSON document and add static metadata fields.

JSON Options
| Option | Description |
|---|---|
| Item key | The key for the products array. Defaults to products. |
| Wrapper elements | Nested object layers around the item array (e.g., data → catalog). |
| Static fields | Hardcoded key-value pairs at each wrapper level (e.g., "version": "1.0"). |
Example JSON Output
{
"version": "1.0",
"data": {
"catalog": {
"products": [
{
"name": "Blue T-Shirt",
"price": "29.99"
},
{
"name": "Red Hoodie",
"price": "59.99"
}
]
}
}
}
Configuring CSV
The CSV format offers detailed control over delimiters, quoting, and how nested or multi-value fields are represented.

CSV Options
| Option | Description | Default |
|---|---|---|
| Delimiter | Field separator (comma, semicolon, tab, pipe) | , |
| Include header | Whether to output a header row | Yes |
| Quote character | Quoting style (double quotes, single quotes, or none) | " |
| Line ending | LF or CRLF | LF |
| Empty field value | Value to use for empty fields | (empty) |
| Multi-value separator | Separator for fields with multiple values | \| |
| Nested field format | How nested fields are formatted: key_value or value_only | key_value |
| Key-value separator | Separator between key and value in nested fields | : |
| Pair separator | Separator between key-value pairs in nested fields | ; |
| Group separator | Separator between nested groups | \| |
Example CSV Output
name,price,description
"Blue T-Shirt","29.99","A comfortable blue t-shirt"
"Red Hoodie","59.99","A warm red hoodie"
Managing Output Fields
Output fields define which fields appear in your feed and in what order. You manage them from the Output Fields tab on your custom channel.

- Adding — click Add to create a new field. Fill in the title and configure options.
- Editing — click on a field row to open the edit modal.
- Deleting — click the delete button on a field row. You'll be asked to confirm.
- Reordering — drag and drop fields using the drag handle to change their order in the output.

Field Options
| Option | Description | Applies to |
|---|---|---|
| Title | The field name as it appears in the output | All formats |
| Output type | Data type hint (text, url, image, date, boolean) | All formats |
| Namespace | XML namespace prefix for this field | XML only |
| CDATA | Wrap the value in a CDATA section | XML only |
| Multiple | Field can contain multiple values | All formats |
Creating Nested Fields
Custom channels support a parent-child field hierarchy up to two levels deep. Nested fields let you group related data under a parent element.
To create nested fields:
- Add a parent field (e.g.,
shipping) - Add child fields and set their Parent to the field you just created (e.g.,
country,price)
A parent field acts as a container — it won't have a value of its own. Only child fields carry product data.
How Nested Fields Render
The same parent-child structure renders differently depending on the format:
XML — nested elements inside the parent element:
<shipping>
<country>US</country>
<price>5.99</price>
</shipping>
JSON — nested object inside the parent key:
{
"shipping": {
"country": "US",
"price": "5.99"
}
}
CSV — flattened using the configurable separators:
shipping
"country:US;price:5.99"
Creating a Feed with a Custom Channel
Once your custom channel is configured with output fields, you can create a feed that uses it:
- Go to Feeds → New Feed
- Select your custom channel from the channel list
- Click Create
- Copy the feed URL to use in your integration
- Configure Output Mapping to map your product data to the output fields you defined

Accessing Different Formats
If your custom channel has multiple formats enabled, you can access each one by changing the file extension in the feed URL:
https://feeds.feedr.com/your-hash.xmlhttps://feeds.feedr.com/your-hash.csvhttps://feeds.feedr.com/your-hash.json
Only formats that you configured on the channel will be available. Requesting a format that isn't configured will return an error.

Make sure you've configured the format-specific options (wrapper elements, delimiters, etc.) for each format you enable. The defaults work for simple cases, but most integrations will need some customization.
Duplicating a Custom Channel
You can duplicate an existing custom channel to create a copy with all output fields and format configurations intact. This is useful when you need a similar channel with small variations — duplicate it and adjust the differences instead of starting from scratch.
You can duplicate an existing custom channel to create a copy with all output fields and format configurations intact. This is useful when you need a similar channel with small variations — duplicate it and adjust the differences instead of starting from scratch.