Welcome to Community Week 2025! Join us to learn, connect, and be recognized as we celebrate the spirit of Community and the power of AI. Get the details  

Redirection for my ooo compose email ui action

Its_Azar
Tera Guru
Tera Guru

Hi everyone

im using an OOO compose email ui action and it renders a client email template and generates the mail, so once i hit send email it is supposed to redirect me to the record but it stays in the same send email ui where email is generated and ready to send again, i want it to redirect to record instead if this, im not sure whats wrong here below is the script, i tried redirecting still not working and this is in workspace -

function onClick(g_form) {


    if (g_form.getValue('approval_status') == '12') {
       
        return;
    }
    var LEGACY_EMAIL_CLIENT_NAME = 'sn-email-editor',
        SEISMIC_EMAIL_CLIENT_NAME = 'sn-email-client-wrapper',
        EMAIL = 'sys_email',
        DRAFT = 'sys_email_draft',
        tValue = DRAFT;

    // Get the list of renderers
    var renderers = [];
    if (ux_globals && ux_globals.presource['sn-workspace-content:snCustomRenderer']) {
        renderers = ux_globals.presource['sn-workspace-content:snCustomRenderer'].data.GlideRecord_Query.sys_aw_renderer._results;
    }

    if (renderers.length > 0) {
        // Filter out Email renderers
        var renderMap = {};
        renderers.filter(function(o) {
            return o.table.value == EMAIL || o.table.value == DRAFT;
        }).map(function(o) {
            renderMap[o.table.value] = o.custom_renderer_tag.value;
        });

        // Determine the final value
        if (!renderMap.hasOwnProperty(DRAFT))
            tValue = EMAIL;
        else {
            if (!renderMap.hasOwnProperty(EMAIL))
                tValue = DRAFT;
            else if (renderMap[EMAIL] == LEGACY_EMAIL_CLIENT_NAME)
                tValue = EMAIL;
        }
    }

    // Generate the email first
    g_aw.openRecord(tValue, '-1', {
        parentTable: g_form.getTableName(),
        parentSysId: g_form.getSysId(),
        headerValue: getMessage("New Email"),
        dirtyFields: g_form.serialize(true).map(function(field) {
            return {
                field: field.name,
                value: field.value
            };
        })
    });

    // Wait a bit to ensure the email opens, then update the approval status
    setTimeout(function() {
        g_form.setValue('xxx', '12');  // Set the field to Disclosures Generated
        g_form.save();  // Save the record
       





    }, 2000); // Delay to ensure email template has time to load

}

 

☑️ If this helped, please mark it as Helpful or Accept Solution so others can find the answer too.

Kind Regards,

Mohamed Azarudeen Z

Developer @ KPMG

2 REPLIES 2

GopikaP
Mega Sage

Hi @Its_Azar , I tried the OOB script and your script, both of them are redirecting to the record itself as expected (in workspace). 

Its_Azar
Tera Guru
Tera Guru

hey thanks for trying this, actually it works all fine until the client email template is called, so im calling a client email template and its generating but after sending mail it doesnt go back to the record, instead refreshes and stays in the send email page.

@GopikaP 

☑️ If this helped, please mark it as Helpful or Accept Solution so others can find the answer too.

Kind Regards,

Mohamed Azarudeen Z

Developer @ KPMG