search for and link a person in a table

I use cloud enterprise.

I use to pass on the entries in a form on to seatable. I would like to be able do the following:

  1. The name and email address is passed on to seatable
  2. First a search is carried out to see if that person’s name and email address already exists
  3. If so, a certain column is linked to another column in another table
  4. If not, a new row is added and the person is linked to another column in another table

At the moment, I cannot find any way to achieve 2). It seems to me that you can only search for a pre-existing row by inputting that row in the search term iin the scenario. Or am I missing something?

You realize such a search using an API call via SQL query:

“sql”: “select ‘_id’ from participant where eMail=‘{{1.participant.driver.EMail}}’ limit 1”,
“convert_keys”: true

where {{}} is the email address you are looking for. Of course, you can make the SQL query as complex as you like.

I’ll post a few screenshots to illustrate the process.

In my example I use Cognito Forms as a form server. Incoming form posts are forwarded to this scenario.

In the first step you get the dtable_uuid, which you get via API call /api/v2.1/dtable/app-access-token/.

In the second step, you then execute the API call with the SQL query /dtable-db/api/v1/query/{{16.body.dtable_uuuid}}/, where {{16.body.dtable_uuid}} is the dtable_uuuid from the first call.

Hope this helps!?

Greetings, Andreas

1 Like

Hi Andreas,

Thank you so much for you help. Unfortunately, I seem to be falling at the first hurdle. I copied the /api/v2.1/dtable/app-access-token/ command and used the “Make an API Call” module to make athe request but get “permission denied”. I am connected to SeaTable as I use the connection for other reasons.

The way I described above is actually the right one. However, since SeaTable 4.0, API access via the API call module of does not seem to work reliably.

Fortunately, there is a workaround for everything. In this case, we simply make an HTTP call from with the correct parameters (basically as if we were making the call via curl).

Here are the screenshots of the workaround.
Screenshot 2023-11-17 17.55.13

In the HTTP call, we must enter the complete URL to the Seatable server. In my example, this is the Seatable server itself.

Of the two header items, the second is the most important: the API token of the respective Seatable base must be specified after the word “Bearer”.

The result of this call is a JSON data element. This is prepared for further use with the JSON module.
Addendum: You can save yourself the trouble by parsing the response of the HTTP call as JSON using the option provided (see screenshot above at the end).

Screenshot 2023-11-17 17.55.50

You can then continue with the SeaTable API call module and specify the dtable_uuid from the JSON module.

Good luck!


Wow, again such wonderful help. I managed to use the http module to call the data. Can you tell me which of the JSON modules I should use?

As described above, the easiest way is to use the radio button “Parse response” in the HTTP module. Please read the explanatory text on the radio button - here the HTTP call must be made manually once (right mouse button “Run this module only”) so that the parser can “learn” the JSON structure.

Screenshot 2023-11-18 11.55.27

Alternatively, there is a separate JSON module in that could also be used to parse the response. However, it has no advantages in this context and costs an extra operation in, which can be saved.

Screenshot 2023-11-18 11.55.49

Greetings, Andreas

Thanks Andreas. I will do some digging and see how to make this work. As a non-coder, I try not to do anything that requires me to start digging into code, whether python, javascript or sql. Maybe there is currently no way around it.

Check if Seatable has automation or scripting capabilities. Some platforms offer automation rules or scripting options that allow you to define more complex logic based on certain triggers. You might be able to create an automation rule that performs specific actions when a new row is added or when certain conditions are met.

Hi Elton, there is nothing in SeaTable at the moment that can do what I want as yet. At least nothing that comes off the shelf.