Advanced trusts

automator-logo

Business case

Some ITRP customers run the premium ITSM application on-premise for different reasons. The implementation partner and the support Organization of ITRP have their accounts in the cloud.

The question is how to pass ITRP related requests to the implementation partner and the support Organization of ITRP?

Automator – advanced trusts

techwork faced the same situation with the itrp.at setup and its customers. The challenge we faced was to pass requests/tasks from an itrp.at customer account to our itrp.com cloud account as flawless as within ITRP (trusts). Hiding the complexity for our customers was of course an additional important factor.

APA-IT_-_techwork_-_ITRP_support_structure__Lucidchart

Standard packages

The automator packages that are needed for this are developed in a generic way. You can just plug in the 2 automator packages

  • Sync – cloud to onpremise
  • Sync – onpremise to cloud

and experience it working in less than an hour.

k.konwalin@techwork.at

 

 

 

 

Structured surveys in ITRP

automator-logo

Some ITRP customers start engaging with Business Intelligence and need to get structured feedback from users to cover the customer’s perspective.

Input

The service forms provide a simple way to collect structured data. The automator sends out a mail with a survey link on completion of every 10th request. The questions are defined in ITRP.

automator_surveyor.png

Transformation

The answered questions are saved in the ITRP request’s custom data. This means that the feedback a requester sends is not anonymous (A blog post about anonymous  feedback by using SurveyMonkey will follow).

Output

The techwork ITRP_reporting solution automatically provides normalized ready to use SQL fields and tables. You can instantly use the data in PowerBI, Excel or other Reporting and Business Intelligence solutions.

k.konwalin@techwork.at

 

 

 

automator at a glance

automator-logo

Purpose

The automator is a cloud based service with the purpose of simplifying and accelerating the development and deployment of automations. In terms of time customers report that the creation of automations is 50 to 70 % faster compared to a traditional approach.

Automations increase the efficiency and effectiveness of workflows because they get rid of manual interventions whenever no human decision making is required. Examples are automatic data lookups in other applications, the transfer of data from one application to another, automated updates and automated record creation.

Overview of interconnected systems by the automator

automator-diagram.png

Visit techwork automator for more information.

k.konwalin@techwork.at

 

Mail interface to small external service providers 2

automator-logo

Prerequisites if you like to try it:

  • You already have an ITPR demo account. If not, you can easily request one with demo data.
  • You already signed up for a techwork automator demo account. If not, goto the registration blog post.

Business case:

Please find the full description of the business case in blog post “Mail interface to small external provider 1“.

In this post we provide an automator package to read the mail the service provider sends back and stores the information in the note field. What needs to be done?

Minimal requirements:

  • We need to look for the ITRP Request Number in the subject (Request # …)
  • We need to fetch the request in ITRP
  • If the request is there we need to look for custom data to apply the internal Service Instance, Team and Member, so that the request is back in the correct inbox.

 


log('******* Mail back from the external provider ********')

$subjectMatch = mail.subject~'Request #(\\d+)';
$itrpRequestNr = $subjectMatch[1];

if ($itrpRequestNr) {
  $request = fetch('requests', $itrpRequestNr);

  if ($request) {
    $teamID = $request.custom_data.wdc_team_id ? $request.custom_data.wdc_team_id : $WDC_Default_Team;
    $memberId = $request.custom_data.wdc_member_id ? $request.custom_data.wdc_member_id : '';
		$serviceInstanceID = $request.custom_data.wdc_si_id ? $request.custom_data.wdc_si_id : '';
    
    $bodyMatch = mail.text~'([^]*)Your original request description:';
    $providerText = $bodyMatch ? $bodyMatch[1] : mail.text;

    $date = date();
    $m = moment($date);
    $tz = $m.tz("Europe/Vienna");
    $tzDate = $tz.format("DD.MM.YYYY, HH:mm");

    update('requests', $itrpRequestNr, {
      team_id: $teamID,
      member_id: $memberId,
      service_instance_id: $serviceInstanceID,
      status: 'assigned',
      note: '```' + $tzDate + ' -- Email back from external provider```:\n\n' + $providerText;
    });
  }
}

log('******* Mail back from the external provider END ********')

 

What it does in human language:

Line 3 and 4: Looks into the subject line of the Email for “Request #” and stores all numbers (digits) after the # in variable “$itrpRequestNr”.

Line 6 and 7: If there is a number stored in $itrpRequestNr then it fetches the request into variable “$request”.

Line 9 to 12: If there is a request stored in “$request” we look in the custom data field for the team id, member id and service instance id and store them into variables.

Line 14 and 15: In the mail body everything above “Your original request description:” is stored in variable “$providerText”. The assumption is that the provider sends the original description at the end of the email. If the line can not be found the whole body content is stored in variable “$providerText”.

Line 17 to 22: Like I described in the last post is to get a valid timestamp for the note. Therefore it will be easy to read when the email came in from the external provider.

Line 24 to 30: It just updates the request with all the data mentioned.

Wrap up

This post and the last post explain how to build a cheap email based interface between ITRP and another Service Management tool. The whole interface takes 2 hours to set up in a live environment.

k.konwalin@techwork.at

 

 

Email in from multiple mailboxes – easier than you think

automator-logo

Prerequisites if you like to try it:

  • You already have an ITPR demo account or a production account. If not, you can easily request one with demo data.
  • You already signed up for a techwork automator demo account. If not, goto the registration blog post.
  • Create a test mail account at for instance gmail.com

Business case:

Each ITRP account has its own email address. It is always the id of your organisation’s ITRP account plus @itrp.com. You can find your id when you open the “Account Overview” section in the settings console. Note: There is no email address for your ITRP demo environment.

Basically each ITRP account is associated with one mailbox. Which is fine, because as you might know you can have multiple ITRP accounts for different purposes and all people, organisations etc. are then defined in the directory account.

However, some companies operate with just one ITRP account and they want to read emails from multiple mailboxes. For instance people are used to write emails to “firewall-requests@organization.com” if they need any changes on the firewall, or “facility.maintenance@organization.com” if light bulbs need to be changed and they still use “SAP-development@organization.com” to log new requirements for SAP.

The automator provides the capability to do that in a smart way.

1st – you can define multiple mail boxes:

inboxes

2nd – attach an email profile to a package:

Because of that capability you don’t need to read the mailTo address. In my case the package automatically reads only from the sap-development inbox.

SAP_dev_profile

 The automator package

The package checks if the person exists in ITRP and creates a RFC for the Service Instance “SAP Basis Europe Development (D45)”.

$mailFrom = mail.from[0];
$mailFromAddr = $mailFrom.address;
$mailFromAddr = 'beatrice.baldwin@widget.com'; 

$filter = 'primary_email=' + $mailFromAddr;
$person = fetchFilter('people', $filter, 'directory')[0];

if ($person) {
  create('requests', {
    subject: mail.subject, note: mail.text,
    category: 'rfc',
    requested_by_id: $person.id,
    service_instance_id: $SAP_Basis_SI
  });
}
else {
  log('reject mail: ',$mailFromAddr);
}

 

The code with comments

$mailFrom = mail.from[0];
$mailFromAddr = $mailFrom.address;
$mailFromAddr = 'beatrice.baldwin@widget.com';
//simulate beatrice as sender

$filter = 'primary_email=' + $mailFromAddr;
$person = fetchFilter('people', $filter, 'directory')[0];
//look in the directory account for beatrice in that case
log('$person.id :', $person.id);

//if the person (Beatrice) exists create a RFC and fill all
//required fields in ITRP
if ($person) {
  create('requests', {
    subject: mail.subject, note: mail.text,
    category: 'rfc',
    requested_by_id: $person.id,
    service_instance_id: $SAP_Basis_SI
  });
}
else {
  //if the person (Beatrice) does not exist just write into the log
  log('reject mail: ',$mailFromAddr);
}

 

Interesting to note

One of the latest updates of the automator is the capability that you can write JSON syntax. Instead of writing code like:

$newSAPrequest.subject = mail.subject;
$newSAPrequest.note = mail.text;
$newSAPrequest.category = 'rfc';
$newSAPrequest.requested_by_id = $person.id;
$newSAPrequest.service_instance_id = $SAP_Basis_SI

create('requests',$newSAPrequest);

you have the option to use JSON syntax :

create('requests', {
    subject: mail.subject, note: mail.text,
    category: 'rfc',
    requested_by_id: $person.id,
    service_instance_id: $SAP_Basis_SI
  });

It makes it just a bit easier.

k.konwalin@techwork.at