---
title: "How do I use Parent to Child (Custom) Matching in Distro?"
source_url: https://help.chilipiper.com/hc/en-us/articles/53529036923283-How-do-I-use-Parent-to-Child-Custom-Matching-in-Distro
article_id: 53529036923283
updated_at: 2026-07-24T19:38:41Z
content_hash: ef19e731
---

## Who can use this feature?

Available on Distro

Available to Admins  Workspace Managers

[Billing Center](https://fire.chilipiper.com/fire/admin/billing/overview) [Get a Demo](https://www.chilipiper.com/request-demo?utm_source=zendesk&utm_medium=help-center&utm_campaign=chili-hub)

Parent to Child matching lets Chili Piper look from a record you are routing (the parent, such as a Lead, Contact, or Account) down to a related child record (such as an Event, Task, Opportunity, or a custom object) and use that child's fields in your routing. Lead to Account (L2A) matching looks up from a Lead to its Account; Parent to Child matching does the opposite, reaching down from a parent to the related records beneath it.

Use it when the value you need to route on does not live on the record itself, but on a related record.

#### Table of Contents

- [How it works](#how-it-works)

- [Set up a Parent to Child matching](#set-up-a-parent-to-child-matching)

- [Use the matching in a routing rule](#use-the-matching-in-a-routing-rule)

- [Matching returns one record](#matching-returns-one-record)

- [Use more than one matching for different criteria](#use-more-than-one-matching-for-different-criteria)

- [Example use cases](#example-use-cases)

- [Limitations](#limitations)

## How it works

A parent record often has many related child records. An Account can have many Opportunities, many Events, or many records of a custom object. Parent to Child matching resolves that one-to-many relationship down to a single child record, so a routing rule can read the child's fields or assign based on them.

Matching runs as a funnel:

- Chili Piper gathers the child records related to the parent;

- Your **filter** removes the records you do not want;

- Your **tiebreaker** picks a single record from whatever remains.

The result is one child record, made available to your routing rules.

> **Note:** The objects in this article are Salesforce objects. To match to a custom object, activate that object first. See [Route to Any Salesforce Objects in Distro](https://help.chilipiper.com/hc/en-us/articles/31924265515923-Route-to-Any-Salesforce-Objects-in-Distro).

## Set up a Parent to Child matching

- In your workspace settings, open the Matching Hub and select the **Custom Matching** tab;

- Select **Create Custom Matching**, then **Parent to Child**:

![](https://help.chilipiper.com/hc/article_attachments/53529023700883)

- Select the pairing: pick the parent object, then the child object. For example, **Lead** and **Events**:

![](https://help.chilipiper.com/hc/article_attachments/53529050047891)

- On the next screen, add a **filter** that identifies the child record you want. For an Event, that is typically the meeting type;

- Add a **tiebreaker** for when more than one record matches. For example, Created Date **is maximum**. On a date field, maximum returns the most recently created record and minimum returns the oldest:

![](https://help.chilipiper.com/hc/article_attachments/53529023975059)

- Give the matching a clear, specific name (for example, Account Team CSM rather than Account Team Members), so you can tell your matchings apart when you have more than one;

- Save the matching.

## Use the matching in a routing rule

Once the matching is saved, the child record and its fields are available to your routing. You can:

- Assign ownership from a field on the matched child, for example the meeting owner on an Event, using a [Distro Variable](https://help.chilipiper.com/hc/en-us/articles/40800666122003-Distro-Variables) to copy that value onto the parent (Distro);

- Update a field on the matched child record;

- Route based on whether a matching child record was found.

Check whether a match was found in one of two places:

- In a **rule**, add the matching and set the operator to **Exists** or **Does not exist**:

![](https://help.chilipiper.com/hc/article_attachments/53528997793299)

- In a **Distro flow**, add a **CRM Matching** node, where you can check whether the matching exists or not:

![](https://help.chilipiper.com/hc/article_attachments/53529031514387)

Build any narrowing logic into the matching filter, not the rule. By the time a rule or node runs, matching has already resolved to a single record, so a condition there only tests that one record (see below).

## Matching returns one record

Parent to Child matching always resolves to a **single** child record. The filter narrows the set and the tiebreaker selects one from what remains. If several children pass the filter, the tiebreaker decides which one you get, and the others are set aside.

Put your selection criteria in the **matching filter**, where the funnel makes its decision, not in the rule. A condition placed in the rule is evaluated against the one record already chosen, so a different record that met your criteria may have been dropped.

## Use more than one matching for different criteria

To handle different criteria or roles, create a separate matching for each, set its own conditions, and give it a distinct name. Each rule or node then references the matching it needs.

For example, to route by account team role, create one matching per role:

- Account Team CSM, filtered on role equal to CSM;

- Account Team AE, filtered on role equal to AE.

Select the matching you need in each rule or node.

## Example use cases

Match
What it does

Lead or Contact to Event
Read the meeting assignee, or update the event type, on the related Event;

Lead or Contact to Task
Match to a related activity and use its fields;

Lead or Account to a custom object
Route only when a related custom record meets your criteria (for example, a project record whose status is not Cancelled);

Account to Account Team Member
Route or assign to a specific team role, such as the CSM or AE. See [Salesforce Account or Opportunity Team – Route or Assign with Chili Piper](https://help.chilipiper.com/hc/en-us/articles/32744409770003-Salesforce-Account-or-Opportunity-Team-Route-or-Assign-with-Chili-Piper);

Opportunity to Opportunity Team Member
Route or assign to a specific opportunity team role;

Account to Opportunity
Read fields from a related Opportunity to drive routing.

To match to a further object, create another Parent to Child matching in the Matching Hub.

## Limitations

- Matching returns a single child record. When more than one record passes the filter, the tiebreaker selects one and the rest are not used;

- Selection criteria belong in the matching filter, not the routing rule, because the rule only evaluates the record the matching already returned;

- To match to a custom object, activate the object first in [Route to Any Salesforce Objects in Distro](https://help.chilipiper.com/hc/en-us/articles/31924265515923-Route-to-Any-Salesforce-Objects-in-Distro).
