Jeg er en person som trenger minst mulig motgang for å motiveres til å skrive jevnlig, noe som kan være en utfordring når man er opptatt med å starte en bedrift, løse prosjekter for kunder og ansette svært attraktive produktfolk. Men det å skrive om hva Oschlo gjør, hvordan vi tenker og morsomme prosjekter vi tar i er en glimrende måte for oss å spre ordet om vår nystartede virksomhet. Dermed må det å skrive innlegg som dette være ekstremt enkelt for at det faktisk skal prioriteres.
Men så er det ikke alltid sånn at det skal være så enkelt likevel. Da vi laget nettsiden til Oschlo brukte vi et verktøy som heter Duda (les mer om det her). Duda er helt glimrende til å få flotte nettsider opp og stå raskt, men en ting de ikke er gode på er det vi kaller et CMS. Et CMS er et content management system og for folk flest vil det si innskrivingsverktøyet som brukes når man skal publisere noe på nett. I Duda var dette verktøyet ganske klønete og ga meg litt for mye motstand til at jeg fikk inspirasjon til å skrive noe som helst.
Notion og Medium
I Oschlo så bruker vi et verktøy som heter Notion aktivt. Notion kan ses på som en del innholdsdatabase, en del kunnskapsdeling, en del samhandlingsverktøy og en del notatblokk. Så og si alt vi produserer av dokumentasjon internt legges i Notion. Notion er også et glimrende og ganske så fleksibelt innskrivingsverktøy. Med mitt driv for å minimere motstand så bestemte jeg meg for å finne en måte å bruke Notion som CMS for bloggen til Oschlo.
Med CMS teoretisk sett på plass var spørsmålet hvordan jeg skulle kunne knytte innholdet til nettsiden vår. Jeg lette litt rundt etter enkle metoder for å knytte Notion til Duda sitt API, men det viste seg å bli litt for komplisert for mine skills. På tidligere arbeidsplasser har vi hatt stort hell med å bruke Medium som blogplattform (se for eksempel Oda sin blog) og det fine med Medium er at det er relativt enkelt å integrere med gjennom ulike tjenester som Zapier, Pipedream eller andre.
Så hvordan knytte sammen Notion og Medium
Jakten på friksjonsfri innholdsproduksjon viste seg å kreve litt motstand det også. Først og fremst viste deg seg at det var litt mer komplisert enn som så å kun bruke Zapier eller Pipedream rett og slett fordi disse kun hentet innhold fra en strukturert database og ikke nødvendigvis innholdet i selve artikkelen. For å få til det så måtte vi gå litt hardere til verks.
Etter litt intens googling kom jeg over denne videoen:
https://www.youtube.com/watch?v=7cF5_DsNeCk
I videoen er hele oppsettet beskrevet, men for de fleste kreves det nok litt ekstra kjøtt på beinet - spesielt når det kommer til å sette opp APIet.
Under gir jeg deg noen tips på hvordan du kan forenkle og liste opp hva du trenger for å komme i gang. Anbefaler også at du følger instruksjonene i videoen nøye (bruk pauseknappen aktivt 😄) for her skjer det mange ting på en gang.
Dette trenger du:
1. En database i Notion
Over ser du hvordan vår database ser ut akkurat nå. Den er satt opp akkurat som beskrivelsen i videoen jeg refererte til over. Hvert “kort” i oversikten er en artikkel.
2. Integrasjonstoken fra Notion
For at du skal ha muligheten til å hente informasjon fra Notion så trenger du et “Token” fra Notion. Et token er i utgangspunktet en sikkerhetsmekanisme som sørger for at kun autorisert kommunikasjon kommer gjennom til innholdet du har satt opp. Du kan lage en token under https://www.notion.so/my-integrations/. Husk her å huke av for at det skal være en intern integrasjon og at den både skal kunne lese og oppdatere innhold
3. En konto på make.com
Make.com er en tjeneste der man i praksis lager ulike arbeidsflyter (scenarios) for å automatisere prosesser. Make er litt mer grafisk enn du vil finne hos for eksempel Zapier, men til tross for at det visuelt er det relativt fleksibelt og kraftig.
Å lage en flyt som det vi har satt opp over krever endel frem og tilbake. Jeg anbefaler deg å følge oppskriften i videoennøye og bruke de samme ordene og beskrivelsene som gis der for her er det lett å trå feil. Selve grensesnittet i make.combør være ganske lett å bruke, men det kan ta bittelitt tilvenning før man mestrer det.
4. En konto på Github.com og Heroku.com eller Replit.com for å sette opp ditt eget content API
Heroku er en SAAS tjeneste som forenkler det å sette opp egne applikasjoner i skyen. Dersom du ikke er utvikler selv kan dette fremstå som relativt gresk. Og det er akkurat dette steget som for meg også hadde en noe høyere terskel. Skulle jeg gjort dette på nytt hadde jeg nok valgt å bruke Replit som forenkler prosessen en hel del.
Det vi i utgangspunktet skal gjøre i dette steget er å ta denne koden https://github.com/mchlkucera/notion-to-html og publisere det til egen applikasjon i Heroku eller Replit. Jeg har tidligere lekt litt med kode i både Github og i Heroku, men jeg har aldri deployet noe selv til en egen applikasjon på nettet. Så hva gjør man i 2023 når man står fast på slike ting? Jo, man spør chatGPT!
ChatGPT gav meg her en steg for steg fremgangsmåte for å deploye til Heroku. Beskrivelsen jeg fikk var gjennom å bruke terminalen til å skrive og den er litt skremmende for de fleste. Så jeg ville nok heller tatt en alternativ fremgangsmåte med Replit. Spør du chatGPT om en fremgangsmåte med Replit ser du den er mye enklere.
Bonus - automatisk kjøring av make.com scenariet
Videoen over viser egentlig kun en måte å flytte innhold fra Notion, via APIet ditt og til Medium. Men man må fortsatt sette prosessen i gang manuelt eller sette det til å gå med et fast intervall. Vi hadde lyst på en måte hvor vi kunne sette prosessen i gang automatisk når en artikkel var klar i Notion, uten å måtte logge inn på make.com for å tykke på en knapp.
Løsningen på dette var å sette opp en Custom Webhook helt i starten av make.com scenariet. En webhook er i utgangspunktet bare en URL som kan starte en prosess når f.eks. en nettlester åpner URLen.
For å sikre at riktig webhook i Make blir aktivert, må vi konstruere en URL som inneholder en ID for å hente tilsvarende Notion-oppføring. Vi oppnår dette ved å lage en formel i blogginnlegget som ser slik ut: concat("[**<https://hook.eu1.make.com/xxx?id=**>](<https://hook.eu1.make.com/xxx?id=>)", id())
. Her erstattes "xxx" med de korrekte verdiene fra Make.
Slik ser det ut i Notion dokumentet. Formelen genererer URLen over.
Den genererte URL-en inneholder en ID som vi kan bruke videre i webhooken for å hente den aktuelle Notion-oppføringen. Resten av prosessen er identisk med den beskrevet tidligere.
URLen åpner man i en nettleser og vipps kjøres flyten og artikkelen publiseres.
Smooth blogging
Alt i alt tok dette ca 1,5 timer å sette opp pluss en times tid for research. Men med det på plass så har du et ekstremt kraftig CMS med alt innhold samlet og en publiseringsplattform som er bygget for å spre innhold bredt. I tillegg har du kuttet vekk massiv frustrasjon som lett oppstår når man må logge inn i ulike verktøy for å klippe og lime innhold inn i klønete løsninger. Med andre ord - dette gir minimalt med motstand (og ingen unnskyldinger) for å ikke publisere mer innhold.
Gjøre noe tilsvarende? Snakk med Oschlo
Vi i Oschlo elsker å grave ned i caser som akkurat denne. Dersom du har arbeidsflyter som dette og som kunne trengt automatisering, eller du har planer om å bygge nye produkter hvor du trenger smarte løsninger så er vi her for å hjelpe. Vi er et produktstudio som tar mål av oss å demokratisere tilgangen til bærekraftig produktutvikling gjennom å utstyre våre partnere med superkreftene til svært erfarne produktledere. Ved bruk av no-code verktøy leverer vi den verdien raskere, bedre og mer tilgjengelig enn alle andre.
Ta kontakt med oss for en hyggelig prat.