When you sync with multiple objects that have a relation, e.g. parent-child relationship, make sure to sync the parent records first. When syncing the child objects, you will need to know the id of their parent in the target.This can be done by doing a lookup in the link table of the parent record.Example link tables for Projects (parents) and Tasks (children):Table link_table_projects
source_id
target_id
100
p1
105
p2
109
p3
Table link_table_tasks
source_id
target_id
1
abc456
6
def789
8
ghi432
Pseudo-code to sync child objects, linked to a parent:
GET SOURCE ROWSFOR EACH SOURCE ROW: CHECK IF RECORD ALREADY IN TARGET (LOOKUP IN LINK TABLE OF **CHILD**) ? IF NOT: 1. FIND PARENT ID IN TARGET (LOOKUP IN LINK TABLE OF **PARENT**) 2. ADD TO TARGET
Here’s the pseudo code in a bit more detail for records of type “Task” that are linked to a parent “Project”:
source_rows = dw.fetch(table) # e.g. list of "Tasks"for row in source_rows: source_id = row["task_id"] if source_id not in **link_table_tasks**: # Task is not in target yet parent_source_id = row["project_id"] parent_target_id = find_target_id(parent_source_id) # Lookup in **link_table_projects** target_id = target.add(target_row)
⌘I
{"docsConfig":{"theme":"maple","$schema":"https://mintlify.com/docs.json","name":"Peliqan documentation","description":"Peliqan.io - the trust layer for AI.","colors":{"primary":"#FF7F2F","light":"#F69C63","dark":"#FF7F2F"},"logo":{"light":"https://mintcdn.com/peliqan-9d7f0393/W5qJqBlsGbR9us2O/images/peliqan-logo-gradient.png?fit=max\u0026auto=format\u0026n=W5qJqBlsGbR9us2O\u0026q=85\u0026s=72328a1cf4f09a999d51ff20683e09ba","dark":"https://mintcdn.com/peliqan-9d7f0393/W5qJqBlsGbR9us2O/images/peliqan-logo-gradient.png?fit=max\u0026auto=format\u0026n=W5qJqBlsGbR9us2O\u0026q=85\u0026s=72328a1cf4f09a999d51ff20683e09ba","href":"https://help.peliqan.io"},"favicon":{"light":"https://mintcdn.com/peliqan-9d7f0393/w6zivbkuDk9k8NHZ/images/peliqan-icon-gradient.png?fit=max\u0026auto=format\u0026n=w6zivbkuDk9k8NHZ\u0026q=85\u0026s=ab4e802992c2eb6d1fea9c531577ef02","dark":"https://mintcdn.com/peliqan-9d7f0393/w6zivbkuDk9k8NHZ/images/peliqan-icon-gradient.png?fit=max\u0026auto=format\u0026n=w6zivbkuDk9k8NHZ\u0026q=85\u0026s=ab4e802992c2eb6d1fea9c531577ef02"},"navbar":{"links":[{"href":"/connectors","label":"Connectors"},{"href":"https://peliqan.io/contact-us","label":"Contact support"},{"href":"https://helpdesk.peliqan.io/tickets","label":"Helpdesk portal"}],"primary":{"type":"button","label":"Book a demo","href":"https://peliqan.io/contact/"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"peliqan-9d7f0393","hasAudioNarration":false,"actualSubdomain":"peliqan-9d7f0393","customDomains":["help.peliqan.io"],"gitSource":{"type":"github","owner":"peliqan-io","repo":"mintlify-docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6ae2e1eb78460a00468536e1","collectionId":"db5bcbf0-5cc2-4dfc-a3b0-c17695af6904","liveDeploymentHistoryId":"6ae2e1eb78460a00468536e1","schemaVersion":"v3"},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"WEB_MCP":{"status":"DISABLED"},"NARRATION":{"status":"DISABLED"}},"buildId":"6ae2e1eb78460a00468536e1","clientVersion":"0.0.4039","searchFilterCounts":[{"language":"default","tag":"Connector Guides","count":97},{"language":"default","tag":"Documentation","count":62},{"language":"default","tag":"For Developers","count":54},{"language":"default","tag":"Data App Use Cases","count":35},{"language":"default","tag":"Basics","count":29},{"language":"default","tag":"Advanced","count":18},{"language":"default","tag":"Connect Your BI Tool","count":16},{"language":"default","tag":"Data Apps","count":12},{"language":"default","tag":"Predictions and ML","count":9},{"language":"default","tag":"For Partners","count":8}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"#content-area{max-width:730px!important}"}],"page":{"pagePath":"parent-child-relations","slug":"/parent-child-relations","pageMetadata":{"title":"Parent child relations","description":"Handle parent-child relationships in syncs","href":"/parent-child-relations"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Handle parent-child relationships in syncs\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,em:`em`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{CodeBlock,Table}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`When you sync with multiple objects that have a relation, e.g. parent-child relationship, make sure to sync the parent records first. When syncing the child objects, you will need to know the id of their parent `,_jsx(_components.em,{children:`in the target`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`This can be done by doing a lookup in the `,_jsx(_components.a,{href:`https://app.notion.com/p/Keeping-track-with-link-tables-0610af5695fc459393073160860a3136?pvs=21`,children:`link table`}),` of the parent record.`]}),`\n`,_jsx(_components.p,{children:`Example link tables for Projects (parents) and Tasks (children):`}),`\n`,_jsxs(_components.p,{children:[`Table `,_jsx(_components.strong,{children:`link_table_projects`})]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{style:{textAlign:`left`},children:_jsx(_components.strong,{children:`source_id`})}),_jsx(_components.th,{style:{textAlign:`left`},children:_jsx(_components.strong,{children:`target_id`})})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,style:{textAlign:`left`},children:`100`}),_jsx(_components.td,{style:{textAlign:`left`},children:`p1`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,style:{textAlign:`left`},children:`105`}),_jsx(_components.td,{style:{textAlign:`left`},children:`p2`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,style:{textAlign:`left`},children:`109`}),_jsx(_components.td,{style:{textAlign:`left`},children:`p3`})]})]})]}),`\n`,_jsxs(_components.p,{children:[`Table `,_jsx(_components.strong,{children:`link_table_tasks`})]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{style:{textAlign:`left`},children:_jsx(_components.strong,{children:`source_id`})}),_jsx(_components.th,{style:{textAlign:`left`},children:_jsx(_components.strong,{children:`target_id`})})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,style:{textAlign:`left`},children:`1`}),_jsx(_components.td,{style:{textAlign:`left`},children:`abc456`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,style:{textAlign:`left`},children:`6`}),_jsx(_components.td,{style:{textAlign:`left`},children:`def789`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,style:{textAlign:`left`},children:`8`}),_jsx(_components.td,{style:{textAlign:`left`},children:`ghi432`})]})]})]}),`\n`,_jsx(_components.p,{children:`Pseudo-code to sync child objects, linked to a parent:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`10`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`10`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`GET SOURCE ROWS`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`FOR EACH SOURCE ROW:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\t\tCHECK IF RECORD ALREADY IN TARGET (LOOKUP IN LINK TABLE OF **CHILD**) ? IF NOT:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\t\t`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\t\t\t1. FIND PARENT ID IN TARGET (LOOKUP IN LINK TABLE OF **PARENT**)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\t\t\t`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\t\t\t2. ADD TO TARGET`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsxs(_components.p,{children:[`Here’s the pseudo code in a bit more detail for records of type “`,_jsx(_components.strong,{children:`Task`}),`” that are linked to a parent “`,_jsx(_components.strong,{children:`Project`}),`”:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`11`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`11`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`source_rows `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` dw.fetch(table) \t `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# e.g. list of \"Tasks\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`for`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` row `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`in`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` source_rows:`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`\tsource_id `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` row[`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"task_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`\tif`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` source_id `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`not`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` in`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` **`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`link_table_tasks`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`**`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Task is not in target yet`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`\t\t `})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`\t\tparent_source_id `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` row[`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"project_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`\t\tparent_target_id `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` find_target_id(parent_source_id) `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Lookup in **link_table_projects**`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`\t\t`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`\t\ttarget_id `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` target.add(target_row)`})]}),`\n`]})})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Parent child relations","description":"Handle parent-child relationships in syncs","href":"/parent-child-relations"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"subdomain":"peliqan-9d7f0393","siteName":"Peliqan documentation","title":"Parent child relations - Peliqan documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-10T17:39:15.757Z","originalFileLocation":"parent-child-relations.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Handle parent-child relationships in syncs\">\u003cmeta data-mint-head name=\"application-name\" content=\"Peliqan documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/peliqan-9d7f0393/ZtfBgJGLa7402fFc/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/peliqan-9d7f0393/ZtfBgJGLa7402fFc/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/peliqan-9d7f0393/ZtfBgJGLa7402fFc/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/peliqan-9d7f0393/ZtfBgJGLa7402fFc/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/peliqan-9d7f0393/ZtfBgJGLa7402fFc/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/peliqan-9d7f0393/ZtfBgJGLa7402fFc/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/peliqan-9d7f0393/ZtfBgJGLa7402fFc/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/peliqan-9d7f0393/ZtfBgJGLa7402fFc/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/peliqan-9d7f0393/ZtfBgJGLa7402fFc/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Parent child relations - Peliqan documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Handle parent-child relationships in syncs\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Peliqan documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://help.peliqan.io/parent-child-relations\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://peliqan-9d7f0393.mintlify.app/_mintlify/api/og/v2?division=Writeback+and+Data+Sync\u0026amp;title=Parent+child+relations\u0026amp;description=Handle+parent-child+relationships+in+syncs\u0026amp;theme=c58b4111cf860ef9f9fc27e7\u0026amp;signature=3bb680e6277387f4b5091e4a1e0f454ecaf57057aede3328d6271f8892e4e2d0\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Parent child relations - Peliqan documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Handle parent-child relationships in syncs\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://peliqan-9d7f0393.mintlify.app/_mintlify/api/og/v2?division=Writeback+and+Data+Sync\u0026amp;title=Parent+child+relations\u0026amp;description=Handle+parent-child+relationships+in+syncs\u0026amp;theme=c58b4111cf860ef9f9fc27e7\u0026amp;signature=3bb680e6277387f4b5091e4a1e0f454ecaf57057aede3328d6271f8892e4e2d0\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/peliqan-9d7f0393/ZtfBgJGLa7402fFc/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Peliqan documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#FF7F2F\">\u003clink data-mint-head rel=\"canonical\" href=\"https://help.peliqan.io/parent-child-relations\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/parent-child-relations.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://help.peliqan.io/#organization\",\"name\":\"Peliqan documentation\",\"url\":\"https://help.peliqan.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/peliqan-9d7f0393/W5qJqBlsGbR9us2O/images/peliqan-logo-gradient.png?fit=max\u0026auto=format\u0026n=W5qJqBlsGbR9us2O\u0026q=85\u0026s=72328a1cf4f09a999d51ff20683e09ba\"}},{\"@type\":\"WebSite\",\"@id\":\"https://help.peliqan.io#website\",\"name\":\"Peliqan documentation\",\"url\":\"https://help.peliqan.io\",\"publisher\":{\"@id\":\"https://help.peliqan.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://help.peliqan.io/parent-child-relations#webpage\",\"url\":\"https://help.peliqan.io/parent-child-relations\",\"name\":\"Parent child relations\",\"description\":\"Handle parent-child relationships in syncs\",\"dateModified\":\"2026-10-10T17:39:15.757Z\",\"isPartOf\":{\"@id\":\"https://help.peliqan.io#website\"},\"breadcrumb\":{\"@id\":\"https://help.peliqan.io/parent-child-relations#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://help.peliqan.io/parent-child-relations#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Data App Use Cases\",\"item\":\"https://help.peliqan.io/low-code-python-data-apps/data-visualization\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Writeback and Data Sync\",\"item\":\"https://help.peliqan.io/low-code-python-data-apps/writeback-reverse-etl-data-sync\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Parent child relations\",\"item\":\"https://help.peliqan.io/parent-child-relations\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://help.peliqan.io/parent-child-relations#article\",\"headline\":\"Parent child relations\",\"name\":\"Parent child relations\",\"description\":\"Handle parent-child relationships in syncs\",\"url\":\"https://help.peliqan.io/parent-child-relations\",\"mainEntityOfPage\":{\"@id\":\"https://help.peliqan.io/parent-child-relations#webpage\"},\"dateModified\":\"2026-10-10T17:39:15.757Z\",\"publisher\":{\"@id\":\"https://help.peliqan.io/#organization\"},\"isPartOf\":{\"@id\":\"https://help.peliqan.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Peliqan documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Peliqan documentation","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":""}]},{"tab":"For Developers","pages":[{"title":"For developers","sidebarTitle":"For Developers","href":"/for-developers"},{"group":"Data Apps","pages":[{"title":"Data Apps - low code Python","sidebarTitle":"Data Apps","href":"/data-apps"},{"title":"Basics of data apps","sidebarTitle":"Basics","href":"/low-code-python-data-apps/basics-of-data-apps"},{"title":"Reading data from tables","sidebarTitle":"Reading Data","href":"/low-code-python-data-apps/reading-data-from-tables"},{"title":"Writing data to tables","sidebarTitle":"Writing Data","href":"/low-code-python-data-apps/writing-data-to-tables"},{"title":"Running apps (manual, schedule etc.)","sidebarTitle":"Running Apps","href":"/low-code-python-data-apps/running-apps-manual-schedule-etc"},{"group":"Publish Apps","root":{"title":"Publish \u0026 Embed apps","sidebarTitle":"Publish Apps","href":"/low-code-python-data-apps/publish-apps"},"pages":[{"title":"Embed apps in Sharepoint","sidebarTitle":"SharePoint embedding","href":"/low-code-python-data-apps/publish-apps/embed-apps-in-sharepoint"},{"title":"Embed apps in Odoo","sidebarTitle":"Odoo embedding","href":"/low-code-python-data-apps/publish-apps/embed-apps-in-odoo"}]},{"title":"Adding a custom login to your app","sidebarTitle":"Adding custom login","href":"/low-code-python-data-apps/adding-login-to-your-app"},{"title":"Flows","sidebarTitle":"Flows","href":"/low-code-python-data-apps/flows"},{"title":"Local development","sidebarTitle":"Local Development","href":"/low-code-python-data-apps/peliqan-python-client"},{"title":"Available Python modules","sidebarTitle":"Python Modules","href":"/low-code-python-data-apps/available-python-modules"},{"title":"Reference","sidebarTitle":"Reference","href":"/low-code-python-data-apps/reference"}]},{"group":"Data App Use Cases","pages":[{"title":"Data Visualization (Streamlit)","sidebarTitle":"Data Visualization","href":"/low-code-python-data-apps/data-visualization"},{"title":"Interactive apps (Streamlit)","sidebarTitle":"Interactive Apps","href":"/low-code-python-data-apps/interactive-apps"},{"group":"Writeback and Data Sync","root":{"title":"Writeback to SaaS APIs","sidebarTitle":"Writeback APIs","href":"/low-code-python-data-apps/writeback-reverse-etl-data-sync"},"pages":[{"title":"Raw API calls","href":"/raw-api-calls"},{"title":"Custom data syncs","sidebarTitle":"Custom Data Syncs","href":"/low-code-python-data-apps/writeback-reverse-etl-data-sync/data-sync-and-data-imports"},{"title":"Incremental processing from source","sidebarTitle":"Incremental Processing","href":"/incremental-processing"},{"title":"Upserts","href":"/upserts"},{"title":"Link tables","description":"Use \"link\" tables to track sync state including the link between source ids and target ids","href":"/link-tables"},{"title":"Parent child relations","href":"/parent-child-relations"}]},{"title":"Alerting \u0026 messaging","sidebarTitle":"Alerting","description":"Alerting \u0026 messaging can be used to inform the right person at the right time with the right data.","href":"/low-code-python-data-apps/alerting-messaging"},{"title":"Send alert to MS Teams","sidebarTitle":"MS Teams Alerts","href":"/send-alert-to-msteams"},{"title":"Send alerts to Slack","sidebarTitle":"Slack Alerts","href":"/low-code-python-data-apps/predictions-machine-learning-templates/send-alerts-to-slack"},{"title":"Data enrichment","sidebarTitle":"Data Enrichment","href":"/low-code-python-data-apps/data-enrichment"},{"group":"Reporting","root":{"title":"Reporting","sidebarTitle":"Reporting","href":"/low-code-python-data-apps/reporting"},"pages":[{"title":"Generate and distribute PDF reports","sidebarTitle":"PDF Reports","href":"/low-code-python-data-apps/reporting/generate-a-pdf-using-html"}]},{"group":"Working with Files","root":{"title":"Working with files","sidebarTitle":"Working with Files","href":"/low-code-python-data-apps/working-with-files"},"pages":[{"title":"Manual file upload \u0026 download","sidebarTitle":"File Upload","href":"/low-code-python-data-apps/working-with-files/manual-file-uploads"},{"title":"Working with Parquet files","sidebarTitle":"Parquet Files","href":"/low-code-python-data-apps/working-with-files/working-with-parquet-files"}]},{"title":"ETL custom pipelines","sidebarTitle":"ETL custom Pipelines","href":"/low-code-python-data-apps/etl-custom-pipelines"},{"title":"Handling deleted rows","sidebarTitle":"Deleted Rows","href":"/low-code-python-data-apps/etl-custom-pipelines/handling-deleted-rows"},{"group":"Predictions and ML","root":{"title":"Predictions, Machine Learning templates","sidebarTitle":"ML Templates","href":"/low-code-python-data-apps/predictions-machine-learning-templates"},"pages":[{"title":"Basic ML prediction example","sidebarTitle":"Basic ML Prediction","href":"/low-code-python-data-apps/predictions-machine-learning-templates/basic-ml-prediction-example"},{"title":"Lead Conversion","sidebarTitle":"Lead Conversion","href":"/low-code-python-data-apps/predictions-machine-learning-templates/lead-conversion"},{"title":"Churn Prediction","sidebarTitle":"Churn Prediction","href":"/low-code-python-data-apps/predictions-machine-learning-templates/churn-prediction"},{"title":"Sentiment Analysis","sidebarTitle":"Sentiment Analysis","href":"/low-code-python-data-apps/predictions-machine-learning-templates/sentiment-analysis"},{"title":"Detect Anomalies - Fraud Detection","sidebarTitle":"Detect Anomalies","href":"/low-code-python-data-apps/predictions-machine-learning-templates/detect-anomalies-fraud-detection"},{"title":"Write predictions to a table","sidebarTitle":"Write Predictions to Table","href":"/low-code-python-data-apps/predictions-machine-learning-templates/write-predictions-to-a-table"},{"title":"Create an app for business users to get predictions","sidebarTitle":"Prediction App for Business Users","href":"/low-code-python-data-apps/predictions-machine-learning-templates/create-an-app-for-business-users-to-get-predictions"},{"title":"Write predictions to a SaaS app","sidebarTitle":"Write Predictions to SaaS App","href":"/low-code-python-data-apps/predictions-machine-learning-templates/write-predictions-to-a-saas-app"},{"title":"Synthetic data","sidebarTitle":"Synthetic Data","href":"/low-code-python-data-apps/predictions-machine-learning-templates/synthetic-data"}]},{"title":"Data quality, monitoring \u0026 contracts","sidebarTitle":"Data Quality","href":"/low-code-python-data-apps/data-quality-monitoring"},{"title":"Data contracts","sidebarTitle":"Data Contracts","href":"/low-code-python-data-apps/data-contracts"},{"title":"Working with metadata in scripts","sidebarTitle":"Metadata","href":"/low-code-python-data-apps/advanced"},{"title":"Generating UNION queries","sidebarTitle":"UNION Queries","href":"/low-code-python-data-apps/generating-union-queries"},{"title":"Generate Union Query","sidebarTitle":"Union Query Template","href":"/generate-union-query"},{"title":"Sync data between parent \u0026 sub accounts","sidebarTitle":"Parent-Sub Sync","href":"/low-code-python-data-apps/sync-data-between-parent-sub-accounts"},{"group":"By Protocol","root":{"title":"By protocol (REST, Webhooks, MQTT…)","sidebarTitle":"By Protocol","href":"/low-code-python-data-apps/by-protocol-rest-webhooks-mqtt"},"pages":[{"title":"MQTT","sidebarTitle":"MQTT","href":"/low-code-python-data-apps/mqtt"}]},{"title":"Slow changing dimensions (history tables)","sidebarTitle":"SCD History Tables","href":"/low-code-python-data-apps/slow-changing-dimensions-history-tables"},{"title":"Data masking / obfuscation","sidebarTitle":"Data Masking","href":"/low-code-python-data-apps/data-masking-obfuscation"}]},{"group":"Platform and APIs","pages":[{"title":"Peliqan Machines - deploy vibe coded apps","sidebarTitle":"Peliqan Machines","href":"/peliqan-machines"},{"title":"How to integrate with the Peliqan OAuth2 server","sidebarTitle":"Peliqan OAuth2 Server","href":"/vibe-coding-apps-peliqan-as-backend/how-to-integrate-with-the-peliqan-oauth2-server"},{"title":"Row-level data access","sidebarTitle":"Row-Level Access","href":"/permission-layer-for-ai-agents"},{"title":"Publish APIs","sidebarTitle":"Publish APIs","href":"/publish-apis"},{"title":"Peliqan REST API","sidebarTitle":"REST API","href":"/peliqan-api"},{"title":"Incoming webhooks","sidebarTitle":"Incoming Webhooks","href":"/incoming-webhooks"}]}]},{"tab":"Connector Guides","pages":[{"title":"Connector Guides","href":"/connectors"}]},{"tab":"Getting started videos","pages":[{"title":"Getting started videos","href":"/getting-started-videos"}]}]},"basePath":"","title":"Parent child relations - Peliqan documentation","buildId":"dpl_77Hw7ZuAABM8E3WMbYAf2ohQCr3v","deploymentId":"dpl_77Hw7ZuAABM8E3WMbYAf2ohQCr3v","dynamics":[],"chunks":[]}