Azuren Logic Apps: pelastuspuhelukoneisto

Pelastuspuheluprosessin kuva

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 vastaaotetusta sanomasta OK - kuittaukseen

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.

Kuitaussanoma - 200 OK

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.

Virheviesti jos lähettävä palvelin ei ole sallitussa IP - joukossa

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!

Lisää ajankohtaisia julkaisuja:

Mitä on Unit Economics -analyysi?
Tiedät liikevaihtosi, katteesi ja tuloksesi — mutta tiedätkö, tuottaako yksittäinen asiakkuus enemmän arvoa kuin sen hankkiminen ja palveleminen maksaa? Unit economics vastaa juuri tähän kysymykseen. Tämä artikkeli avaa, mitä unit economics tarkoittaa, mistä komponenteista se rakentuu ja miten sitä sovelletaan käytännössä — esimerkkinä sopimusperusteinen B2C-liiketoiminta, jossa asiakas voi pitää yhtä aikaa useita voimassaolevia sopimuksia.
Tutustu tarinaan
Millainen on data-alustan kehittämisprojekti?
Organisaation data-alustan rakentaminen tai modernisointi ei ole perinteinen IT-projekti. Se on kehityshanke, jossa teknologia, liiketoiminnan ymmärrys ja tiedonhallinta kietoutuvat yhteen — ja jossa todellinen työ alkaa vasta kun oikea data kohtaa oikean maailman haasteet. Tässä blogissa pureudumme data-alustaprojektin luonteeseen, vaiheisiin, riskeihin ja parhaisiin käytäntöihin. Käymme läpi, miksi data-alustaprojekti on enemmän tutkimusmatka kuin kartta, ja miten tekoäly muuttaa tätä kokonaisuutta.
Tutustu tarinaan
Mitä on henkilöstöanalytiikka
Jokainen organisaatio tekee jatkuvasti päätöksiä ihmisistä — rekrytoinneista, palkankorotuksista, osaamisen kehittämisestä, työvoimasuunnittelusta. Mutta kuinka moni näistä päätöksistä perustuu dataan? Tämä artikkeli avaa, mitä henkilöstöanalytiikka käytännössä tarkoittaa, mitä hyötyjä se tuo ja miten hajallaan oleva HR-data muutetaan päätöksentekoa ohjaavaksi kokonaisuudeksi.
Tutustu tarinaan
Datasopimus käytännössä — miten data-alustan luotettavuus rakennetaan
Datatiimit käyttävät jopa 40–60 % ajastaan virheiden selvittämiseen, joiden syy on muualla. Sarake vaihtaa nimeä, tyyppi muuttuu, kenttä alkaa tulla tyhjänä — ja loppupään raportit hajoavat ääneti. Datasopimus estää tämän tekemällä odotukset näkyviksi ja valvottaviksi.
Tutustu tarinaan
Mitä on tekoälyavustettu sovelluskehitys?
Lisää tuottavuutta ohjelmistokehitykseen agenttisella kehityksellä.
Tutustu tarinaan

Lisää ajankohtaisia julkaisuja:

Mitä on Unit Economics -analyysi?
Tiedät liikevaihtosi, katteesi ja tuloksesi — mutta tiedätkö, tuottaako yksittäinen asiakkuus enemmän arvoa kuin sen hankkiminen ja palveleminen maksaa? Unit economics vastaa juuri tähän kysymykseen. Tämä artikkeli avaa, mitä unit economics tarkoittaa, mistä komponenteista se rakentuu ja miten sitä sovelletaan käytännössä — esimerkkinä sopimusperusteinen B2C-liiketoiminta, jossa asiakas voi pitää yhtä aikaa useita voimassaolevia sopimuksia.
Tutustu tarinaan
Millainen on data-alustan kehittämisprojekti?
Organisaation data-alustan rakentaminen tai modernisointi ei ole perinteinen IT-projekti. Se on kehityshanke, jossa teknologia, liiketoiminnan ymmärrys ja tiedonhallinta kietoutuvat yhteen — ja jossa todellinen työ alkaa vasta kun oikea data kohtaa oikean maailman haasteet. Tässä blogissa pureudumme data-alustaprojektin luonteeseen, vaiheisiin, riskeihin ja parhaisiin käytäntöihin. Käymme läpi, miksi data-alustaprojekti on enemmän tutkimusmatka kuin kartta, ja miten tekoäly muuttaa tätä kokonaisuutta.
Tutustu tarinaan
Mitä on henkilöstöanalytiikka
Jokainen organisaatio tekee jatkuvasti päätöksiä ihmisistä — rekrytoinneista, palkankorotuksista, osaamisen kehittämisestä, työvoimasuunnittelusta. Mutta kuinka moni näistä päätöksistä perustuu dataan? Tämä artikkeli avaa, mitä henkilöstöanalytiikka käytännössä tarkoittaa, mitä hyötyjä se tuo ja miten hajallaan oleva HR-data muutetaan päätöksentekoa ohjaavaksi kokonaisuudeksi.
Tutustu tarinaan
Datasopimus käytännössä — miten data-alustan luotettavuus rakennetaan
Datatiimit käyttävät jopa 40–60 % ajastaan virheiden selvittämiseen, joiden syy on muualla. Sarake vaihtaa nimeä, tyyppi muuttuu, kenttä alkaa tulla tyhjänä — ja loppupään raportit hajoavat ääneti. Datasopimus estää tämän tekemällä odotukset näkyviksi ja valvottaviksi.
Tutustu tarinaan
Mitä on tekoälyavustettu sovelluskehitys?
Lisää tuottavuutta ohjelmistokehitykseen agenttisella kehityksellä.
Tutustu tarinaan