Skip to main content
Solved

Automating contact entries when creating new project record

  • September 27, 2025
  • 10 replies
  • 150 views

Forum|alt.badge.img+2

This is kind of complicated and I’m not sure if it will be possible, but here goes.

 

I’m trying to automate data entry for each record I create in my Project table. What I have set up now is a Long Text field called “Paste” where I paste the contents of an email, and several field agents that comb through the text of that email to fill out fields like Project Name, Project Type, Notes, etc.

 

Each email contains the name of several people associated with the project’s production team: directors, writers, and producers. I have a separate table that is a Master Contact List of all the names that have ever been entered, and in my main Project table, I have a linked field called Production Team that links to the Master Contact List. Multiple linked records are allowed so that multiple people can be logged in that field in the Project table.

 

Right now, I have to manually enter all the names. I would love for a field agent to be able to do this for me, but it would require several steps.

 

First, it would have to identify the names from the Paste field where I paste email contents. This is about as far as I’ve gotten on my own - AI seems to be able to extract those pretty well. What it’s doing right now is generating a list of names and their associated titles.

(Example:

Director: Person A

Writers: Person B, Person C

Producers: Person C, Person D)

 

Here’s where it gets tricky. I would then need it to treat each of those names separately, and scan the Master List to see if each name appears there.

 

If a name (or multiple names) appears on the Master Contact List, I would like it to automatically be added to the Production Team field on the Project table.

 

If a name does NOT appear on the Master Contact List, I would like the name to be automatically entered as a new record there. Ideally, it would also use the Paste field contents to identify the category of person (director, writer, or producer) and add that to the Master List record as well - there is a multi select field on the Master List that has all possible title options.

 

Then, finally, any record that had to be newly added to the Master Contact List would also be added to the Production Team linked field on the Project table.

 

I’m also not sure if this would complicate things further, but sometimes one person will serve multiple roles on the production team. So you might have someone who is both the director and writer. I wouldn’t want to end up with duplicate entries on the master list in that scenario.

 

Is this anywhere near possible? Or do I just need to resign myself to manual data entry for these fields?

Best answer by TheTimeSavingCo

Hm yeah I think this is possible, but I don’t think it’s doable via a field agent.  Instead, try using an automation + AI step instead and I’ve set it up here for you to check out

And the instructions:

  1. Create an automation with an Omni step that takes the text in “Paste” and get it to output an array of names + titles
  2. Feed this output into a Run a Script action to convert it to an actual array so you can use a repeating group on it:
    1. let {data} = input.config()
      output.set('data', JSON.parse(data))
    2.  

  3. That ‘Create Record’ step will create a record in a new ‘Tasks’ table where it’ll have the name of the person and the title
  4. Create another automation that’ll trigger whenever a record gets created in Tasks, and its action will be to:
    1. Find a record in Contacts that has the same name
      1. If one exists, link that record to the original triggering record from step 1
        1. You’ll need to add the title here as well to handle that title edge case, and for this you’d just do an ‘Update record’ action. You can just do it like the screenshot below, if the option already exists in the ‘Titles’ field it just gets ignored
        2.  

      2. If one does not exist, create a new Contact record and link it to the original triggering record

 

You can also hire me to handle this for you if you’d like!

10 replies

TheTimeSavingCo
Forum|alt.badge.img+31

Hm yeah I think this is possible, but I don’t think it’s doable via a field agent.  Instead, try using an automation + AI step instead and I’ve set it up here for you to check out

And the instructions:

  1. Create an automation with an Omni step that takes the text in “Paste” and get it to output an array of names + titles
  2. Feed this output into a Run a Script action to convert it to an actual array so you can use a repeating group on it:
    1. let {data} = input.config()
      output.set('data', JSON.parse(data))
    2.  

  3. That ‘Create Record’ step will create a record in a new ‘Tasks’ table where it’ll have the name of the person and the title
  4. Create another automation that’ll trigger whenever a record gets created in Tasks, and its action will be to:
    1. Find a record in Contacts that has the same name
      1. If one exists, link that record to the original triggering record from step 1
        1. You’ll need to add the title here as well to handle that title edge case, and for this you’d just do an ‘Update record’ action. You can just do it like the screenshot below, if the option already exists in the ‘Titles’ field it just gets ignored
        2.  

      2. If one does not exist, create a new Contact record and link it to the original triggering record

 

You can also hire me to handle this for you if you’d like!


Forum|alt.badge.img+2
  • Author
  • Participating Frequently
  • September 30, 2025

Hm yeah I think this is possible, but I don’t think it’s doable via a field agent.  Instead, try using an automation + AI step instead and I’ve set it up here for you to check out

And the instructions:

  1. Create an automation with an Omni step that takes the text in “Paste” and get it to output an array of names + titles
  2. Feed this output into a Run a Script action to convert it to an actual array so you can use a repeating group on it:
    1. let {data} = input.config()
      output.set('data', JSON.parse(data))
    2.  

  3. That ‘Create Record’ step will create a record in a new ‘Tasks’ table where it’ll have the name of the person and the title
  4. Create another automation that’ll trigger whenever a record gets created in Tasks, and its action will be to:
    1. Find a record in Contacts that has the same name
      1. If one exists, link that record to the original triggering record from step 1
        1. You’ll need to add the title here as well to handle that title edge case, and for this you’d just do an ‘Update record’ action. You can just do it like the screenshot below, if the option already exists in the ‘Titles’ field it just gets ignored
        2.  

      2. If one does not exist, create a new Contact record and link it to the original triggering record

 

You can also hire me to handle this for you if you’d like!

Thank you so much for this detailed response! Yes, my mistake, I created field agents for a few other things but I meant to ask about Omni automations for this! I tried to have Omni generate an automation for me by describing it, but it didn’t get very far before it stopped working.

This is great! I’m actually still on the Trial period of the Team plan, so I have to pull the trigger on a paid subscription before I can run scripts. But this seems like a perfect solution! In your example, the names are just first names - would it work the same with names that have both a first and last name?

Also, to make sure I’m understanding, the “Tasks” table is sort of like a working space for the automation? The automation outputs the information (the array?) into Tasks, and then uses that information to check against the Contacts table?


TheTimeSavingCo
Forum|alt.badge.img+31

In your example, the names are just first names - would it work the same with names that have both a first and last name?

Yeap it’d work the same!

---

Also, to make sure I’m understanding, the “Tasks” table is sort of like a working space for the automation? The automation outputs the information (the array?) into Tasks, and then uses that information to check against the Contacts table?

Yeap pretty much!  The limitation we’re working around is that we can’t have a Repeating Group and Conditional Logic in the same automation; ideally we’d have the automation loop through each of the names and titles, look for a contact, and then either create one or link it, and this Tasks table allows us to do that by:

  1. Creating one record per name / title
  2. Automation triggers per record and has conditional logic

Forum|alt.badge.img+2
  • Author
  • Participating Frequently
  • October 2, 2025

Awesome - thank you so much! I’ll report back when I’m able to implement this!


Forum|alt.badge.img+2
  • Author
  • Participating Frequently
  • October 31, 2025

Just started a Team subscription and I’m currently working on getting this set up! I’m most of the way there, but I’m running into something I don’t quite understand when it gets to the “Update Record” step of the second automation:

Under “Fields” in the sidebar, how did you enter “List of ‘Titles’ | List of ‘Name’” and “List of ‘Table 1’ | Airtable record ID”? And what exactly do those entries mean/how do they work?

This is what I see step-by-step when I try to do the same thing - it ends up looking different from what I see in yours (last screenshot). I’m not sure if I’m basically doing the same thing and it just looks different, or if I’m clicking on the wrong options.

 


TheTimeSavingCo
Forum|alt.badge.img+31

Under “Fields” in the sidebar, how did you enter “List of ‘Titles’ | List of ‘Name’” and “List of ‘Table 1’ | Airtable record ID”?

Ah here’s a gif.  We have to scroll down and select ‘Field values’ followed by the field we want and then the Name of the field, as opposed to the option ID or color:


 

And what exactly do those entries mean/how do they work?

Those variables indicate either:

  1. The compiled list of Title values from all the found records
  2. The compiled list of record IDs from all the found records

And so we’re looking for all the relevant, compiling their information, and updating the original record with their data

 


Forum|alt.badge.img+2
  • Author
  • Participating Frequently
  • November 1, 2025

Awesome, got it! Thank you! I have the version you made up and running now, but I’m trying to modify it a bit so that the automation will also put the names associated with each projects the into different fields in the Projects table, according to their titles. I thought I had a good setup, and it works great for creating new records, but when it comes to updating previously existing contact records with new titles/projects, I’m getting an error. Is there something obvious that I’m missing here? Or is this just getting too convoluted for an automation to handle? The only difference between your configuration in this one (at least as far as I can see) is the condition on which this step runs. The condition check runs fine, but then it doesn’t update the record.

There’s the configuration of that step, and the error message when I run a test.

And here’s what it it looks like in the Projects tab when I try to run the automation. Anyone who has a role that is different than a role they’ve had before will not be added - so George is correctly added as a writer to test 1 and 3, but not as a director to test 2. And Adam isn’t added a producer to test 3.


Forum|alt.badge.img+2
  • Author
  • Participating Frequently
  • November 2, 2025

I’ve figured out why this is happening, though I’m still messing around to see if I can fix it - since George G. did not yet have any other entries under “As Director,” [List of ‘As Director’ | Airtable record ID] is null, and causes an error. So if I remove that the test works, but then of course it wouldn’t correctly append the list if there are later entries where he is a listed as a director.


TheTimeSavingCo
Forum|alt.badge.img+31

Ah hmm, I’m not quite sure I’m following the business logic, so sorry.  If it helps, the conditional is the thing that handles this error for us, it basically does:

  1. If ‘Director’ is empty, just put in the new link
  2. If ‘Director’ isn’t empty, combine the old links with the new link and put it together

And so the surefire way of fixing the issue is to create one automation per linked field.  I think you may be able to add in different conditionals to your existing automation too but I’m not really sure, apologies


Forum|alt.badge.img+2
  • Author
  • Participating Frequently
  • November 2, 2025

That’s really helpful  - thank you so much!