{% extends "admin/change_form.html" %} {% block extrastyle %} {{ block.super }} {% endblock %} {% block content %} {{ block.super }}

Transform format

Name Type Description
dest string Name of key in destination data.
value string Some value (constant).
src string / array Query into the JSON source. ./jq Manual
fetcher string
Fetcher for a value from the query result.
Default is: first.
Available types: first, all, text.
sep string
Separator for join multiple parts of query result.
Default is: " ".
match string / array
Pattern for re.mach(pattern, value).groups().
The array type is in the format [pattern, flags, separator]
used as separator.join(re.mach(pattern, value, flags).groups()).
fnc string
A function that processes the data.
def remove_identical_value(rule: dataType, src: dataType, dest: dataType) -> None:
    """Remove value if it is identical to another."""
    data = [dest.get(key) for key in rule.get("params", {}).get("fields", [])]
    if len(set(data)) < len(data) and rule["dest"] in dest:
        del dest[rule["dest"]]
You can verify the transformation result via the "Export data via webhook" command in the Form submission post administration. .

Transform example

[
    {"dest": "roid", "value": "1234650"},
    {
        "dest": "first_name",
        "src": ".form_data[] | select(.label==\"Name\").value",
        "match": "(.+)\\s+\\S+$"
    },
    {
        "dest": "last_name",
        "src": ".form_data[] | select(.label==\"Name\").value",
        "match": ".+\\s+(\\S+)$"
    },
    {
        "dest": "email",
        "src": ".form_data[] | select(.label==\"Email\").value"
    },
    {
        "dest": "phone",
        "src": ".form_data[] | select(.label==\"Phone\").value"
    },
    {
        "dest": "company",
        "src": ".form_data[] | select(.label==\"Company\").value"
    },
    {
        "dest": "address",
        "src": [
            ".form_data[] | select(.name==\"street\").value",
            ".form_data[] | select(.name==\"city\").value"
        ],
        "sep": "; "
    },
    {
        "dest": "ip",
        "src": ".ipv4",
        "match": ["(\\d+).+(\\d+).+(\\d+).+(\\d+)", "S", "."]
    }
    {
        "dest": "lead_source",
        "src": ".hostname"
    },
    {
        "fnc": "aldryn_forms.api.utils.remove_identical_value",
        "dest": "first_name",
        "params": {
            "fields": ["first_name", "last_name"]
        }
    }
]
For more see ./jq Manual.

Source data example

{
    "hostname": "example.com",
    "name": "The form name",
    "language": "en",
    "sent_at": "2025-03-03T02:00:48.439766Z",
    "ipv4": "127\n0\n0\n0\n1",
    "form_recipients": [
        {
            "name": "Dave",
            "email": "dave@dwarf.red"
        }
    ],
    "form_data": [
        {
            "name": "name",
            "label": "Name",
            "field_occurrence": 1,
            "value": "Arnold Rimmer"
        },
        {
            "name": "email",
            "label": "Email",
            "field_occurrence": 1,
            "value": "arnold@dwarf.red"
        },
        {
            "name": "street",
            "label": "Street and number",
            "field_occurrence": 1,
            "value": "Upper Deck 42"
        },
        {
            "name": "city",
            "label": "City",
            "field_occurrence": 1,
            "value": "Deep space"
        },

    ]
}
{% if SITE_API_ROOT %}For more see Api Root.{% endif %}

Result of examples

{
    "roid": "1234650",
    "first_name": "Arnold",
    "last_name": "Rimmer",
    "email": "arnold@dwarf.red",
    "address": "Upper Deck 42; Deep space",
    "lead_source": "example.com",
    "ip": "127.0.0.1"
}
{% endblock %}