Adding or pasting a linked record into multiple cells with pre existing records

I need to add a linked record to several hundred rows, without deleting the existing linked records. When I try to paste the new record into the rows, it deletes everything that’s already in that cell and replaces it with only the pasted record.
Doing this by hand would obviously not be time effective. Please tell me this is a feature and I’m just not seeing how to do it!
Deleting a linked record from multiple rows would also be helpful!

5 Likes

This feature (addition of a linked record to multiple entries) would be insanely useful. I am facing adding a linked record to over 2,000 records, and I’m not looking forward to that.

3 Likes

It can be done quite easily — albeit not all that intuitively. :wink: (I recommend trying this on a duplicate of the base, just in case…)

Edit: It just occurred to me I don’t know whether you mean you wish to link to records in a different table from the one in the existing link or to link to additional records in the same table — so I’ll show you how to do both.

To add links to records in a different table

  1. Create a new Single-line Text field called, oh, something like {NewLink}.

  2. In {NewLink}, enter the value of the primary field(s) of the record(s) to which you wish to link. If you wish to link all records in the current table to the same record in the target table, the easiest way is

    1. Select the primary field of the target record.
    2. Press Ctrl-C to copy the value.
    3. Select {NewLink} in Row 1 of the table you wish to link from.
    4. Scroll down to the last row in the table and while holding down the Shift key select {NewLink} in the bottom-most row.
    5. Press Ctrl-V to paste the target value into {NewLink} for every record.

    If you wish to link only some of the records, or wish to link to multiple records in the target table, enter the values of the appropriate primary fields.

  3. When you have finished entering values into {NewLink}, right-click the field name and select 'Customize field type' from the menu. Change the field type from Single-line Text to Linked Record. When prompted for the table to which to link, select the target table.

  4. Airtable converts each text entry into a link to the record with the corresponding primary field.

To add links to additional records in the same table

Steps 1 and 2 are the same as in the previous example:

  1. Create a new Single-line Text field called, oh, something like {NewLink}.

  2. In {NewLink}, enter the value of the primary field(s) of the record(s) to which you wish to link. If you wish to link all records in the current table to the same record in the target table, the easiest way is

    1. Select the primary field of the target record.
    2. Press Ctrl-C to copy the value.
    3. Select {NewLink} in Row 1 of the table you wish to link from.
    4. Scroll down to the last row in the table and while holding down the Shift key select {NewLink} in the bottom-most row.
    5. Press Ctrl-V to paste the target value into {NewLink} for every record.

    If you wish to link only some of the records, or wish to link to multiple records in the target table, enter the values of the appropriate primary fields.

  3. Create a new Formula field called {NewLinks} with the following formula:

     {OldLink}&','&{NewLink}
    
  4. Right-click {NewLinks} and select 'Customize field type' from the menu. Change the field type from Formula to Linked Record. When prompted for the table to which to link, select the target table.

  5. Airtable converts each concatenated text entry into multiple links to the records with the corresponding primary fields. (The comma separator disappears in the process.)

  6. After confirming the links were added correctly, delete the {OldLink} and {NewLink} fields and rename {NewLinks} appropriately.

I’ve used these steps to add multiple links to thousands of records at a time without a hiccup.

Thanks for the thorough process. :slight_smile: I have used that approach, but I can’t expect my coworkers to feel comfortable doing that, unfortunately. I’ve sold them on Airtable is a powerful database with an intuitive UI, and I think having them try to do that would cause a revolt.

I’m hoping for something a little more drag-and-drop in the future.

Thanks,
Chris

2 Likes

I’m a little confused — I assumed this was a one-time need, most likely during the initial development of a base. Are you saying you anticipate having to add a linked record as a regular task? Would this be a linked record to a new or to an existing table?

Yes, regular task…we are using linked records as a tag. We send mailings to our donors, and each new mailing gets a record in the Mailing table. When we send a given mailing to 2,000+ recipients, all of whom have records in the Donor table, we want to be able to tag each of them with that mailing. In the Donor table, there is a “Mailings” field which has links to all of the mailings that each donor has been sent.

edit: On re-reading, I fear I buried the lede. Rather than manipulate 2000+ fields, this accomplishes the same thing as option 2 above by copy-and-pasting a value into a single field.


Ah…

In that case, go the opposite direction.

I’m assuming whatever you use to send your mailings can give you a list of everyone to whom the mailing has been sent as one long comma-separated list of IDs matching the primary field of your [Donor] table. (If not, presumably one could be generated within Airtable through a rollup against whatever criteria you use to determine who gets a mailing.)

  1. Select and copy the CSV list of donors to your clipboard.
  2. In the [Mailing] table, if a record does not yet exist to track the new mailing, create it.
  3. Select the {Link to Donor} field in the new [Mailing] record.
  4. Press Ctrl-V to paste the list into the field.
  5. Wait. With 2,000 records, it regularly took more than a minute for Airtable to create the necessary links between [Donor] and [Mailing].

I tried using the CSV Import Block to automate the process further, but when importing a CSV value into a linked record field, Airtable interprets the entire CSV string as a single entry. I could import it into a single-line test field and then copy/paste or drag the value into the linked record field, if either of those seem preferable.

And, of course, I could select the CSV list and then drag-and-drop it into the applicable [Mailing] record field. :wink:

Actually, I couldn’t — it seems Airtable doesn’t allow drag-and-drop from another app into a field. You have to use copy-and-paste…

Hi! I’m in the same place as Chris. I have regular ad-hoc additions that I need to make to an Airtable base that involves adding a new value to a multi-select linked field. We’re using Airtable to manage our research panel and have a column with the studies that each person has participated in.
Sometimes we also put our surveys that go to most/all the panel. We want to update the studies field with the survey that the person has been sent. Again, it’s something that happens regularly, so I can’t get my researchers to do the above workaround as they just won’t do it.
We don’t have a CSV of the people that the surveys are sent to.
Is there a simple/easy way to regularly add an additional item to a multi-select without deleting the other items in there?

Hi @W_Vann_Hall

I was looking for a way to do bulk linking of records, for De-duplication setup (the earlier version) and then I found your instructions. I worked on it a bit and I managed to link 600 records x 3 tables (which saved me lot of time). :grinning:

I have a question:

When I have new records, do I just copy the values in the primary field and paste it on the second table (“New Links” now changed to a linked field)?

I did notice that the format of the “New Links” field is listed horizontally, not vertically, so I am not sure where I would paste the new record values?

Here is a screenshot:

Thank you,
Mary

+1 for a solution to this. The batch update block doesn’t let me update linked fields for some reason. This seems like the easiest solution. Copying the new value and pasting en masse just overrides the other linked values in the field and replaces it with whatever is pasted. Same for updating one record and dragging down.

Like Chris and Rebecca, I need to update thousands of records with linked values. I want to document all of the communications between staff and research participants. Every time I send out a recruitment message or follow-up message, I create a record in the Message table. Then I link that message to the recipients whose records are stored in my People table. Since there are many communications that happen, not all to the same people but to different people who qualify for different studies, then each person’s record will have different contents for the Messages Received field. When I select my participants for a particular study and send them a new message, I cannot easily link the message to their record. Seems like a basic function.

4 Likes

I can’t believe there still isn’t a solution to this problem 3 years later. Airtable, please PLEASE can you add link fields to the batch update block? @Katherine_Duh

4 Likes

Hello everyone,

For a perhaps less intuitive but still very automatic way of doing it, please see this post:
Bulk Add a Linked Records to Fields that have existing linked records

I used the “By select” option but modified the code a little bit to my needs so that the selected record was added to only a filtered view of, in my case, “Main Table”:

let CatTable = base.getTable('Taxonomy landscaping');
let CatRecord = await input.recordAsync("Enter the Category you'd like to add to sected view",CatTable)
let FillTable = base.getTable('Main table').getView("Power Generation");
let TableQuery = await FillTable.selectRecordsAsync();
let TableRecords = TableQuery.records;

let d = []
TableRecords.forEach(c => d.push({id: c.id}));
await CatTable.updateRecordAsync(CatRecord.id,{
    
    'Main table': d

}
    
);
output.markdown('# Done 🚀, please double check it is right')

Since I have many different filtered views that would need adding different linked records, the only hassle now is to edit the code every time and change the .getView("…") for the filtered view I want to modify. But it’s much better than adding 1 by 1.

Hope it helps!

1 Like