Azuren Logic Apps: pelastuspuhelukoneisto
Joillain toimialoilla (teleoperaattorit, sähkönmyynti) on mahdollista, että asiakkaalla on tietty ”katuma-aika” ennen kuin sopimus siirtyy toiselle toimijalle. Tänä aikana on tietyissä olosuhteissa mahdollista tarjota asiakkaalle erikoistarjousta, jolla tämä jää vielä asiakkaaksi. Tällaista reagoivaa kampanjaa voisi kutsua ”pelastuspuheluksi”.
Onko tällaisten kampanjan rakentaminen kallista ja vaatiiko se runsaasti ICT – resursseja? Ei välttämättä, tässä kirjoituksessa esitetään esimerkki miten tällaisen prosessin voisi rakentaa kustannustehokkaasti.
Azuren Logic Apps on Microsoftin pilvipalvelun Azuren palvelu erilaisten integraatioiden tekemisen, työnkulkujen käynnistämisen ja liiketoimintaprosessien suorittamisen tarpeisiin. Millaisia mahdollisuuksia Logic Apps sitten tarjoaa ja millaista on kehittäminen sillä edellä kuvatun liiketoimintaprosessin tapauksessa?
Työnkulku käynnistyy vastaanotetusta sanomasta, sen jälkeen sanoma käsitellään ja päätellään, mikä on paras kontaktointitapa. Kontaktointitavan perusteella viesti lähetään joko SMS – gateway – palvelun kautta tai sähköpostina. Lopuksi prosessi lähettää kuittaussanoman.
Azure Logic Appsin luominen ARM - templaatilla
Logic Appsin voi luoda hyvin nopeasti portaalin käyttöliittymästä käsin aiemman esimerkkini mukaisesti, mutta kun prosessia toistetaan niin tietyt perusasetukset olisi helpompi luoda pohjalle käyttäen Azure Resource Manager – templaatteja sekä esimerkiksi Powershelliä.
Alla on JSON - muodossa olevat pohjat ARM – templaatista sekä siihen liittyvästä parametritiedostosta, alussa workflow – definition on tyhjä, se luodaan vasta portaalin puolella.
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"logicAppName": {
"type": "string"
},
"logicAppLocation": {
"type": "string"
}
},
"variables": {},
"resources": [
{
"name": "[parameters('LogicAppName')]",
"type": "Microsoft.Logic/workflows",
"location": "[parameters('LogicAppLocation')]",
"tags": {
"displayName": "LogicApp"
},
"apiVersion": "2016-06-01",
"properties": {
"definition": {
"$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#"
},
"parameters": {
},
"accessControl": {
"triggers": {
"allowedCallerIpAddresses": [
{
"addressRange": "x.x.x.x-y.y.y.y"
}
]
},
"actions": {
"allowedCallerIpAddresses": []
}
},
"endpointsConfiguration": {}
}
}
],
"outputs": {}
}
Parametritiedosto sisältää tietyt kiinteät arvot, muuten parametrisointeja tehdään myös .ps1 – skriptissä.
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"logicAppName": {
"value": "Rescue_Call"
},
"logicAppLocation": {
"value": "northeurope"
}
}
}
Azureen resurssit näiden perusteella luova .ps1 - skripti on alla.
param ($accountName,$rgName)
Connect-AzAccount
Get-AzSubscription -SubscriptionName $accountName | Set-AzContext -Name "Context" -Force
New-AzResourceGroupDeployment -ResourceGroupName $rgName -TemplateFile ".app_rescue.json" -TemplateParameterFile ".app_rescue.parameters.json"
Edellinen skripti käynnistetään kutsumalla skriptiä määritellyin parametrein, jotka tässä tapauksessa ovat käytettävä resurssiryhmä sekä Azure – tilauksen nimi. ARM – templaattien, Powershell – skriptien ja muiden tarvittavien resurssien luomiseen Visual Studio Code on riittävän hyvä, sillä voidaan helposti toteuttaa nämä ja integraatio Azure DevOps – palvelussa tai GitHubissa olevaan Git – repoon on toimiva.
Työnkulun sisältö
Työnkulun käynnistystapahtumaksi valittiin vastaanotettu sanoma, seuraavaksi sanoma käsitellään ja päätellään mikä olisi paras kontaktointitapa.
Jos kontaktointitapa on sähköposti niin sanoma menee sähköpostina vastaanottajalle, muussa tapauksessa käytetään tekstiviestipalvelua. Tässä esimerkissä sähköpostipalvelu on Outlook, käytännössä kuitenkin joku Sendgridin tai vastaavan kaltainen palvelu olisi välttämätön. Kirjoitin aiemmin esimerkin siitä, miten Sendgrid – palvelun avulla voidaan personoida sähköposteja.
SMS – gatewayna toimii Twilio, johon on mahdollista saada kokeilutunnukset sen rajapinnan hyödyntämistä varten. Twiliota varten on Logic Appsissa oma connector, joten prosessin konfigurointi ei vie paljoa aikaa.
Logic Appsin testaus
Testasin prosessin toimivuutta käyttämällä Postmania, vaaditun sanoman muodostaminen on helppoa ja tulokset näkyvät välittömästi.
Kun sanomaa muuttaa lähetystavan suhteen niin puhelimeen tulee viesti Twilio – palvelusta.
Kuittaussanoma kertoo millä lähetystavalla viesti on laitettu eteenpäin.
ARM – templaatissa oli myös määritelty se IP – avaruus, josta prosessin käynnistävä sanoma voi tulla. Jos IP on eri, niin tulee alla oleva viesti.
Postmania on suhteellisen helppo käyttää tällaisten rajapintapalveluiden yksittäisten sanomien testaamiseen.
Kehitysmahdollisuudet
Monesti pelastuspuheluprosessissa olisi oltava mukana myös puhelu, sitä varten pitäisi olla rajapinta käytettävän call center – kumppanin järjestelmään taikka sitten joissain tapauksissa SFTP – pohjainen eräsiirto. Logic Appsiin pitää myös lisätä Azure AD – autentikointi ja hyödyntää Azuren API management palveluita.
Tutustu myös Ready Solutions Oy:n palveluihin meillä on erittäin vahvaa osaamista Azuren data-alustapalveluista!