Deluge Script: Onboarding → Access Form

Deluge Script: Onboarding → Access Form

Hello everyone,

Edit: Sorry, I think I put this topic in the wrong section.

I’ve recently run into an issue that’s been giving me a bit of a headache for the past few weeks.

Context:
This is my first time using Deluge to create a script, but it’s not my first time coding. I built an onboarding application in Creator. What I’d like now is that whenever we create/update an onboarding record, it should also create/update an "Access" form that gathers all the accesses of the person in question.

To do this, I wrote a script that triggers after the creation/update event (Onboarding → Created or Edited → Successful form submission → Access granted on Onboarding). The Access form contains the fields "Name", "Onboarding ID", and a subform "Software Access" which includes the fields "Name" and "Access Type".

Script:
// ----- Onboarding ▸ On Success (Created or Edited) -----
// 1) Get Onboarding ID
access_list = Access[Onboarding_ID == input.ID.toLong()];
info "access_list: " + access_list;
info "Added_Time: " + input.Added_Time;
info "Modified_Time: " + input.Modified_Time;

// Initialization
rows = List();
access_rec = Map();
sf_list = List();
existing = List();

// If form existing
if(input.Added_Time != input.Modified_Time)
{
    access_rec = access_list.get(0);
    info "access_rec: " + access_rec;
    sf_list = access_rec.get("Software_Access");
    if(sf_list != null)
    {
        for each  sf in sf_list
        {
            existing.add(sf);
        }
    }
    if(input.Microsoft && !existing.contains("Microsoft 365"))
    {
        m = Map();
        m.put("Name_Software_Access","Microsoft 365");
        m.put("Access_Type","User");
        rows.add(m);
    }
    //Add another SaaS

    // Update form
    if(rows.size() > 0)
    {
        access_rec.Software_Access = rows; // -> Error: Variable "access_rec not define"
    }
}
else
{
    if(input.Microsoft == true)
    {
        m = Map();
        m.put("Name_Software_Access","Microsoft 365");
        m.put("Access_Type","User");
        rows.add(m);
    }
    //Add another SaaS

    // Create form  
    if(rows.size() > 0) // <- //
    {
        newSA = add into Acces
        [
            Name_access    = input.Name_Onboarding;
            Onboarding_ID  = input.ID.toLong();
            Software_Access = rows;
        ]; // -> Syntaxe error
    }
}



I can’t figure out what I did wrong. I’ve checked the documentation to understand how Deluge works but i find the documentation not really understandable. I tested, at last resort, with our friends Charlie (ChatGPT) & Cursor to try and pinpoint my mistake, but nothing seems to work and I'm stuck.

Could someone explain to me where I am wrong ?