# How to copy child records between Knack records

**URL:** <https://forums.knack.com/t/how-to-copy-child-records-between-knack-records/20302>\
**Category:** Show & Tell\
**Created:** [March 26, 2026, 11:57pm UTC](https://forums.knack.com/t/how-to-copy-child-records-between-knack-records/20302 "2026-03-26T23:57:40Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![StephenChapman](https://sea2.discourse-cdn.com/flex020/user_avatar/forums.knack.com/stephenchapman/32/1759_2.png) [@StephenChapman](https://forums.knack.com/u/StephenChapman)\
**Post date:** [March 26, 2026, 11:57pm UTC](https://forums.knack.com/t/how-to-copy-child-records-between-knack-records/20302/1 "2026-03-26T23:57:40Z")

</div>

![copy-records](https://us1.discourse-cdn.com/flex020/uploads/knack/original/2X/2/2840f80f4cb1deb93a1a88eba2290db7e2557222.gif)

Knack currently doesn’t have the inbuilt capability to duplicate a record’s connected records in either the Builder or live app.

The only workaround is to create an automation (Knack Flows, Make, etc) to copy multiple records - this can still be cumbersome to maintain, and can consume a lot of valuable operations.

This native Knack form/JavaScript solution is great for use cases where you want to copy a parent record (e.g. Project) and all its related child records (e.g. Tasks).

> **Here is what the copyRecords function looks like**
>
> Knack.on(‘form:submit’, async ({ record, viewKey, isEdit }) =\> {  
> if (viewKey === ‘view\_aa’) {  
> const newParentId = record.id;  
> const oldParentId = record.field\_aa\_raw[0].id;  
> copyRecords({  
> filters: [{ field: ‘field\_bb’, operator: ‘is’, value: oldParentId }],  
> recordToCreate: { field\_bb: newParentId },  
> copyFromFieldKey: ‘field\_cc’,  
> gridSceneKey: ‘scene\_bb’,  
> gridViewKey: ‘view\_bb’,  
> formSceneKey: ‘scene\_bb’,  
> formViewKey: ‘view\_cc’  
> });  
> }  
> });

> **Here is an example of the function call**
>
> ```auto
> Knack.on('form:submit', async ({ record, viewKey, isEdit }) => {
> if (viewKey === 'view_aa') {
> const newParentId = record.id;
> const oldParentId = record.field_aa_raw[0].id;
> copyRecords({
> filters: [{ field: 'field_bb', operator: 'is', value: oldParentId }],
> recordToCreate: { field_bb: newParentId },
> copyFromFieldKey: 'field_cc',
> gridSceneKey: 'scene_bb',
> gridViewKey: 'view_bb',
> formSceneKey: 'scene_bb',
> formViewKey: 'view_cc'
> });
> }
> });
> 
> ```

**[Click here](https://stephenchapman.knack.com/portal#r/68f95381cde075030a7bbfbf/)** to access the free installation instructions for both Classic and Next-Gen.  
Also feel free to check out my full library of Knack resources [here](https://stephenchapman.knack.com/portal#resources/).

[![](https://us1.discourse-cdn.com/flex020/uploads/knack/original/2X/6/63accebd0e64ef28d3fa1face2e33e6378562412.jpeg "How to copy child records between Knack records") ](https://www.youtube.com/watch?v=Gk9_xHFUymY)

---

<div class="post-metadata">

**Author:** ![Phillip2](https://sea2.discourse-cdn.com/flex020/user_avatar/forums.knack.com/phillip2/32/5528_2.png) [@Phillip2](https://forums.knack.com/u/Phillip2)\
**Post date:** [March 27, 2026, 6:12pm UTC](https://forums.knack.com/t/how-to-copy-child-records-between-knack-records/20302/2 "2026-03-27T18:12:14Z")

</div>

Just what I needed Stephen! Thank you so much. Earlier this week I was combing through the Knack community looking for this option and finding it on feature requests, and now today this post pops up and its just what I’m looking for. I’ve implemented it on our app and so far it is working exactly as I want it to!

---

<div class="post-metadata">

**Author:** ![BradStevens](https://sea2.discourse-cdn.com/flex020/user_avatar/forums.knack.com/bradstevens/32/140_2.png) [@BradStevens](https://forums.knack.com/u/BradStevens)\
**Post date:** [March 27, 2026, 9:07pm UTC](https://forums.knack.com/t/how-to-copy-child-records-between-knack-records/20302/3 "2026-03-27T21:07:17Z")

</div>

Brilliant stuff for the community mate!

---

<div class="post-metadata">

**Author:** ![StephenChapman](https://sea2.discourse-cdn.com/flex020/user_avatar/forums.knack.com/stephenchapman/32/1759_2.png) [@StephenChapman](https://forums.knack.com/u/StephenChapman)\
**Post date:** [March 29, 2026, 8:26pm UTC](https://forums.knack.com/t/how-to-copy-child-records-between-knack-records/20302/4 "2026-03-29T20:26:12Z")

</div>

Thanks @Phillip2 and @BradStevens!
