Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

Requirements

  • many-to-one assignment (one assignment group can have many email addresses)
  • should not have to edit code to add/update/delete queue mail aliases
  • should ignore Cc: address list

Proposal

  • create a related table under Assignment Groups for Mail Aliases
  • modify the Create Incident inbound action script to use the new table to match To: address to Assignment Group

Steps

  • create/populate table 'u_group_mail_aliases':
    • u_email (string)
    • u_group (reference to sys_user_group)
  • update the Create Incident inbound action with something like this:
    // bw -- find assignment group by doing a lookup in u_group_mail_aliases
    // first match wins!
    // loop through email.direct 
    var addresses = email.direct.split(",");
    for (var i=0; i < addresses.length; i++) {
        var alias = new GlideRecord('u_group_mail_aliases');
        alias.addQuery('u_email', '=', addresses[i]);
        alias.query();
        current.description += "checked for " + addresses[i] + '\n';
        current.description += "row count is " + alias.getRowCount() + '\n';
        if (alias.getRowCount() > 0) {
            break;
        }
    }
    // if there was an alias match, use it to assign group
    if (alias.getRowCount() > 0) {
        alias.next();
        current.description += "matched on " + alias.u_group + '\n';
        current.assignment_group = alias.u_group;
    }
    

...the table can be permissioned as appropriate (probably fine to restrict it to admin). Might be nice to restrict the u_email field to be unique, but that's just icing since it's enforceable manually by any reasonable admin.

  • No labels