Defining parent-child relationships for custom objects

<body>
<p id="docs-hc-snippet" style="display: none;">A parent-child relationship field is atype of custom fieldyou can add to standard Zendesk objects and custom objects. It is used to define a hierarchical relationship between objects, and support inherited permissions and shared data. Additionally, within a parent-child relationship that has a custom object parent, admins can define roll-up summary fields that provide a read-only summary of a characteristic of child records.</p>
<div class="article-banners">
<div id="docs-wmp-link">
<a href="https://support.zendesk.com/hc/en-us/articles/5411234991258-plan" rel="noopener" target="_blank">What's my plan?</a>
</div>

<div class="article-banner" id="suite_pee">
<table>
<tbody>
<tr>
<td>
<strong>All Suites</strong>
</td>
<td>Professional, Enterprise, or Enterprise Plus</td>
</tr>
</tbody>
</table>
</div>

<div class="article-banner" id="support_e">
<table>
<tbody>
<tr>
<td>
<strong>Support</strong>
</td>
<td>Enterprise</td>
</tr>
</tbody>
</table>
</div>

</div>
<div id="docs-ai-summary">
<p id="docs-ai-summary-toggle">Summary: <span id="up-triangle">◀</span><span id="down-triangle">▼</span></p>
<p id="docs-ai-summary-content">You can create parent-child relationships between custom objects and standard objects to establish hierarchical data structures with inherited permissions and shared data. This setup improves data integrity by controlling child record lifecycles through the parent. You can also add roll-up summary fields to custom object parents to aggregate child record data, with filtering options to refine relationships and summaries based on specific criteria.</p>
</div>

<div class="body">

<p class="p">A parent-child relationship field is a <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/4408838961562" target="_blank">type of custom field</a> you can add to standard Zendesk objects
and custom objects. It is used to define a hierarchical relationship between objects,
and support inherited permissions and shared data. Additionally, within a parent-child
relationship that has a custom object parent, admins can define roll-up summary fields
that provide a read-only summary of a characteristic of child records.</p>
<p class="p">If you're looking to create a non-hierarchical relationship between objects, see <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/4591924111770" target="_blank">Creating and using lookup relationship fields</a>.</p>
<div class="p">This article contains the following topics:<ul class="ul" id="topic_vtz_zz2_2jc__ul_nnh_1cf_2jc">
<li class="li"><a class="xref" href="#topic_uln_1cf_2jc">Understanding parent-child relationships</a></li>
<li class="li"><a class="xref" href="#topic_uvh_bcf_2jc">Adding parent-child relationship fields</a></li>
<li class="li"><a class="xref" href="#topic_sl2_2kf_2jc">Adding roll-up summary fields to parent objects</a></li>
</ul>
</div>
</div>
<div aria-labelledby="ariaid-title2" class="topic nested1" id="topic_uln_1cf_2jc">
<h2 class="title topictitle2" id="ariaid-title2">Understanding parent-child relationships</h2>
<div class="body">
<p class="p">Admins and agents with permission can add parent-child relationship fields to the
child object in the relationship to establish a hierarchical parent-child
relationship between objects in Zendesk. Child records can't exist outside of the
context of the parent record. Therefore, the parent record has complete control
over the lifecycle for the child records, especially as it relates to data deletion.
Because of the strictness of the relationship, parent-child relationships can
improve data integrity and predictability.</p>
<p class="p">When creating the parent-child relationship field, you can select whether the child
object should inherit the parent's permissions.</p>
<p class="p">When agents work with parent-child relationships, the parent-child relationship field
is a required field for the child object's records. From a parent object record,
admins and agents with permission can view a list of child records.</p>
</div>
<div aria-labelledby="ariaid-title3" class="topic nested2" id="topic_wx5_lcf_2jc">
<h3 class="title topictitle3" id="ariaid-title3">Limitations</h3>
<div class="body">
<div class="p">Consider the following limitations before creating parent-child relationships:<ul class="ul" id="topic_wx5_lcf_2jc__ul_e1n_pcf_2jc">
<li class="li">Parent-child relationship fields are added to the child objects.
Currently, only custom objects are supported as child objects.</li>
<li class="li">Parent-child relationship fields support tickets, users, organizations,
and custom objects as parent objects. Parent-child relationships don't
support articles, brands, or groups as the parent object.</li>
<li class="li">Each object can be configured as the child object for a maximum of two
parent relationships.</li>
<li class="li">There is no limitation to the number of child objects a parent object can
have.</li>
<li class="li">If an object is the child to more than one parent object, only one of
the parent object's permissions can be inherited.</li>
<li class="li">Child objects can't be parents to other objects.</li>
<li class="li">Parent-child relationship fields can't be added if either object already
has records.</li>
<li class="li">Deleting a parent record also permanently deletes all associated child
records.</li>
<li class="li">Parent-child relationship fields can be deleted from the child object,
but this action is permanent and results in the loss of all relationship
data.</li>
<li class="li">Roll-up summary fields are supported for parent-child relationships with
a custom object parent only.</li>
<li class="li">Roll-up summaries can summarize a maximum of 10,000 child records per
field. If the parent has more than 10,000 child records, the roll-up
summary can't be calculated.</li>
</ul>
</div>
</div>
</div>
</div>
<div aria-labelledby="ariaid-title4" class="topic nested1" id="topic_uvh_bcf_2jc">
<h2 class="title topictitle2" id="ariaid-title4">Adding parent-child relationship fields</h2>
<div class="body">
<p class="p">Parent-child relationship fields are added to child objects and displayed on their
object's pages in Zendesk. </p>
<div class="p">
<strong class="ph b">To create a parent-child relationship field</strong><ol class="ol" id="topic_uvh_bcf_2jc__ol_dcn_mm3_ttb">
<li class="li"><span class="ph">In <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/4581766374554#topic_hfg_dyz_1hb" target="_blank">Admin Center</a>, click <img class="image" id="topic_uvh_bcf_2jc__d8e1737" src="https://zen-marketing-documentation.s3.amazonaws.com/docs/en/ac_objects_rules_icon.png">
<strong class="ph b">Objects and rules</strong> in the sidebar, then select <strong class="ph b">Custom objects &gt;
Objects</strong>.</span></li>
<li class="li">Click the name of the custom object you want to add a field to.</li>
<li class="li">Click the <strong class="ph b">Fields</strong> tab, and then click <strong class="ph b">Add field</strong>.</li>
<li class="li">Select <strong class="ph b">Parent-child</strong>.</li>
<li class="li">Set the <strong class="ph b">Display name</strong>, <strong class="ph b">Field key</strong>, and <strong class="ph b">Description</strong> as
described in <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/5392409465370-Creating-custom-objects-to-integrate-with-custom-data#topic_cq4_1sn_lwb" target="_blank">Defining a custom object's schema with
custom fields</a>.</li>
<li class="li">Under <strong class="ph b">Select a parent object</strong>, select ticket, users, organizations, or
another custom object as the parent object for the relationship.</li>
<li class="li">(Optional) Select <strong class="ph b">Inherit permissions from the parent object</strong> if you
want the child object to inherit the parent object's permissions.<p class="p">When
selected, the parent's permissions override any permissions defined for
the child object.</p>
<div class="note">
<span class="notetitle">Note:</span> If this option isn't available, it means the
object is already configured to inherit permissions from a different
parent object.</div>
</li>
<li class="li">(Optional) Click <strong class="ph b">Add filter</strong> to define one or more filters to reduce
the number of options that the field can display.<p class="p">In most cases, you'll
want a defined subset of records for the options in your parent-child
relationship fields. You can filter objects by any number of tags or
custom fields. See <a class="xref" href="#topic_j4j_djf_2jc">Filtering a parent-child relationship field's options</a></p>
</li>
<li class="li">Click <strong class="ph b">Save</strong>.</li>
</ol>
</div>
</div>
<div aria-labelledby="ariaid-title5" class="topic nested2" id="topic_j4j_djf_2jc">
<h3 class="title topictitle3" id="ariaid-title5">Filtering a parent-child relationship field's options</h3>
<div class="body">
<div class="p">Depending on the type of objects selected, different filters are available to
help admins restrict the records available to be selected within the field.<ul class="ul" id="topic_j4j_djf_2jc__ul_tqz_g5f_l1c">
<li class="li">
<strong class="ph b">Ticket</strong>: If the parent object is a ticket, the following
additional default filters are available: Status, Type, Priority,
Assignee, Requester, Form, Organization, and Channel.</li>
<li class="li">
<strong class="ph b">User</strong>: If the parent object is a user, there is an additional Role
filter available.</li>
<li class="li">
<strong class="ph b">Custom object</strong>: If the child object is a custom object, you can
dynamically restrict the object records available for selection within
the parent-child field by using additional filters.</li>
</ul>
</div>
<p class="p">Relationship fields also support filtering by other custom fields added to the
related object. For example, if you add a <em class="ph i">Security Clearance</em> custom
checkbox field to the user profile, the <em class="ph i">Security Clearance</em> field will
appear as a filter option when you add the parent-child relationship field. You
could then define the following filter condition for the field: <code class="ph codeph">Security
Clearance | Is | Checked</code>. </p>
<p class="p">Furthermore, you can filter relationship fields based on whether they match or
don't match field values in the source object. For example, if an object has a
parent-child relationship field named <em class="ph i">Order category</em> that points to a
custom object named <em class="ph i">Order</em>, you could filter the results to return only
<em class="ph i">Order</em> records that have a <em class="ph i">Category</em> field value that matches
the ticket's <em class="ph i">Order category</em> field. When filtering parent-child
relationship fields for matching values in one of the source object's fields,
the tags (rather than values) are compared for drop-down fields. </p>
<p class="p">When using the <code class="ph codeph">match</code> and <code class="ph codeph">does not match</code>
operators to filter relationship field values, you can only compare values in
fields of the same type. For example, two drop-down field values can be
compared, but you can't compare a drop-down field's value to a multi-select
field's value. Therefore these operators are only available when matching field
types exist.</p>
<p class="p">You can modify the filters at any time. This won't affect the values previously
selected within parent-child relationship fields.</p>
</div>
</div>
</div>
<div aria-labelledby="ariaid-title6" class="topic nested1" id="topic_sl2_2kf_2jc">
<h2 class="title topictitle2" id="ariaid-title6">Adding roll-up summary fields to parent objects</h2>
<div class="body">
<p class="p">Roll-up summary fields provide a summary of a characteristic of child records on a
parent record. For example, you may want the total cost the child line items within
an order.</p>
<p class="p">The roll-up summary custom field type is available only for parent-child
relationships where the parent is a custom object. Roll-up summaries support a
maximum of 10,000 child records to be summarized per field.</p>
<div class="p">The speed with which roll-up summaries are calculated depends on the number of child
records:<ul class="ul" id="topic_sl2_2kf_2jc__ul_kp2_mvj_fjc">
<li class="li"> If there are less than 1,000 child records being summarized, the roll-up
summary is calculated in near real-time.</li>
<li class="li">If there are between 1,000 and 10,000 child records being summarized, the
roll-up summary is calculated on an hourly basis.</li>
<li class="li">If there are more than 10,000 child records being summarized, the roll-up
summary can't be calculated.</li>
</ul>
</div>
<div class="p">
<strong class="ph b">To create a roll-up summary field</strong><ol class="ol" id="topic_sl2_2kf_2jc__ol_rfd_klf_2jc">
<li class="li"><span class="ph">In <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/4581766374554#topic_hfg_dyz_1hb" target="_blank">Admin Center</a>, click <img class="image" id="topic_sl2_2kf_2jc__d8e1737" src="https://zen-marketing-documentation.s3.amazonaws.com/docs/en/ac_objects_rules_icon.png">
<strong class="ph b">Objects and rules</strong> in the sidebar, then select <strong class="ph b">Custom objects &gt;
Objects</strong>.</span></li>
<li class="li">Click the name of the parent object you want to add the field to.</li>
<li class="li">Click the <strong class="ph b">Fields</strong> tab, and then click <strong class="ph b">Add field</strong>.</li>
<li class="li">Select <strong class="ph b">Roll-up summary</strong>.</li>
<li class="li">Set the <strong class="ph b">Display name</strong>, <strong class="ph b">Field key</strong>, and <strong class="ph b">Description</strong>.</li>
<li class="li">Under <strong class="ph b">Select summarized object</strong>, select the child object they want to
summarize.</li>
<li class="li">Under <strong class="ph b">Select roll-up type</strong>, select from: <strong class="ph b">Count</strong>, <strong class="ph b">Sum</strong>,
<strong class="ph b">Min</strong> (minimum), and <strong class="ph b">Max</strong> (maximum).<p class="p"><em class="ph i">Sum</em> is
available for use with number, decimal, and currency field types.
<em class="ph i">Min</em> and <em class="ph i">max</em> are available for use with date, number,
decimal, and currency field types.</p>
</li>
<li class="li">Then use <strong class="ph b">Select field to aggregate</strong> to specify the child object's
field that you want to summarize.</li>
<li class="li">(Optional) Click <strong class="ph b">Add filter</strong> to define one or more filters to reduce
the number of child objects the roll-up field summarizes.</li>
<li class="li">Click <strong class="ph b">Save</strong>.</li>
</ol>
</div>
</div>
</div>
<div aria-labelledby="ariaid-title7" class="topic nested1" id="topic_hb4_sxs_vjc">
<h2 class="title topictitle2" id="ariaid-title7">Migrating lookup fields to parent-child relationships</h2>
<div class="body">
<p class="p">Some lookup relationship fields can be converted to parent-child relationships in
Admin Center.</p>
<div class="note" id="topic_hb4_sxs_vjc__note_j5j_ysb_xjc">
<span class="notetitle">Note:</span> This conversion is not reversible.</div>
<p class="p">A lookup relationship field can be converted only if all of the following are
true:</p>
<ul class="ul" id="topic_hb4_sxs_vjc__ul_iny_bys_vjc">
<li class="li">All existing child records have a non-null value in the lookup field</li>
<li class="li">The target object is eligible to be a parent object</li>
<li class="li">The child object does not already have two parent relationships</li>
<li class="li">The relationship is not self-referential</li>
<li class="li">The child object is not already a parent of another object</li>
</ul>
<p class="p"><strong class="ph b">Note:</strong> Articles, Groups, and Brands can't be used as parent objects.</p>
<p class="p">When you convert a lookup relationship field to a parent-child relationship, the
existing lookup field is updated in place rather than creating a new field.</p>
<ul class="ul" id="topic_hb4_sxs_vjc__ul_yh2_dys_vjc">
<li class="li">The field becomes required</li>
<li class="li">The relationship is registered as a parent-child relationship in the schema</li>
<li class="li">Deleting the parent deletes all child records</li>
<li class="li">Child record access can be inherited from the parent</li>
<li class="li">Related lists and record page layouts update to reflect parent-child
behavior</li>
<li class="li">The parent object can use roll-up summary fields to aggregate values from child
records</li>
</ul>
<div class="p">
<strong class="ph b">To convert a lookup field to a parent-child relationship</strong><ol class="ol" id="topic_hb4_sxs_vjc__ol_fzp_tzs_vjc">
<li class="li">Open the details page for the lookup field you want to convert.</li>
<li class="li">Click <strong class="ph b">Actions</strong>, then select <strong class="ph b">Convert to parent</strong>.</li>
</ol>
</div>
<p class="p">Before converting, Admin Center displays validation results to identify blocking
issues, such as child records with missing values in the lookup field. If validation
fails, you must update the missing values before you can continue.</p>
</div>
</div>
<script id="docs-schema-markup" type="application/ld+json">{
"@context": "https://schema.org",
"@type": "TechArticle",
"@id": "https://support.zendesk.com/hc/en-us/articles/10689819118746",
"url": "https://support.zendesk.com/hc/en-us/articles/10689819118746",
"headline": "Defining parent-child relationships for custom objects",
"description": "You can define hierarchical parent-child relationships between custom and standard objects to manage data integrity, permissions, and roll-up summaries within your system.",
"articleSection": "Custom data",
"datePublished": "2026-05-07T05:42:39+00:00",
"dateModified": "2026-07-20T16:34:05.757714+00:00",
"inLanguage": "en-US",
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "https://support.zendesk.com/hc/en-us/articles/10689819118746"
},
"author": {
"@type": "Organization",
"name": "Zendesk",
"@id": "https://www.zendesk.com"
},
"publisher": {
"@type": "Organization",
"name": "Zendesk",
"@id": "https://www.zendesk.com"
},
"isPartOf": {
"@type": "WebSite",
"name": "Zendesk Help",
"@id": "https://support.zendesk.com/hc/"
},
"about": {
"@type": "SoftwareApplication",
"name": "Zendesk",
"@id": "https://www.zendesk.com"
}
}</script><script id="ai-summary-script">
//<![CDATA[
const ai_summary_style = document.createElement('style');
ai_summary_style.innerHTML = `#styled-article-body{padding:0 0 0}#article-body #docs-ai-summary{background-color:#f3f3f3;border:1px solid #d3d3d3;padding:10px 10px 6px;margin-bottom:16px}#article-body #docs-ai-summary #docs-ai-summary-toggle{font-size:.9em;font-weight:700;margin-bottom:4px;cursor:pointer;display:flex;justify-content:space-between;align-items:center}#article-body #docs-ai-summary #docs-ai-summary-toggle #up-triangle{margin-left:auto;padding-right:10px;display:none}#article-body #docs-ai-summary #docs-ai-summary-toggle #down-triangle{margin-left:auto;padding-right:10px}#article-body #docs-ai-summary #docs-ai-summary-content{font-size:.9em;padding-left:25px;padding-right:25px;margin-bottom:12px}`;
document.head.appendChild(ai_summary_style);

const toggleAISummary = () => {
const summary = document.getElementById("docs-ai-summary-content");
const upTriangle = document.getElementById("up-triangle");
const downTriangle = document.getElementById("down-triangle");
if (summary.style.display === "none") {
summary.style.display = "block";
upTriangle.style.display = "none";
downTriangle.style.display = "inline";
} else {
summary.style.display = "none";
upTriangle.style.display = "inline";
downTriangle.style.display = "none";
}
};

document.getElementById("docs-ai-summary-toggle").addEventListener("click", toggleAISummary);
//]]>
</script>
</body>