12. Desember 2024
3
minutter lesetid

Norkart sprer Glede til ansatte direkte fra HR-systemet Huma

Sonja Ertik Andersen
HR Konsulent

Norkart er et fremoverlent norsk teknologiselskap som leverer markedsledende løsninger innen geografisk IT for bedre arbeidsflyt og smartere samhandling. Med sine 230 ansatte leverer de tekniske løsninger til over 300 kommuner og 50 interkommunale selskaper hver eneste dag, og sikrer grunnlaget for håndtering av mer enn 35 milliarder kroner i kommunale gebyrer. 

De siste årene har Norkart hatt en fin vekstreise, og i takt med at Excel-arkene este ut skapte veksten et behov for å få bedre kontroll på HR-oppgavene. Etter en vurdering av ulike alternativer falt valget på det norske HR systemet Huma

Huma - et enkelt og intuitivt HR-system

Sonja Ertik Andersen er HR-konsulent i Norkart, og forteller litt om hvordan Huma fungerer for dem:

“Vi har spart mye tid på administrative oppgaver etter vi begynte å bruke Huma. I tillegg er det enkelt å legge til nye moduler etterhvert som ansatte blir kjent med funksjonene som finnes der. Det har gjort overgangen overkommelig for både oss i HR og de ansatte.”

Huma er lettvint å sette seg inn i, og enkelt å bruke!

Hun trekker frem tre ting hun liker spesielt godt med Huma: 

Integrasjon med Glede forenkler hverdagen

Tidligere hadde hver enkelt leder ansvar for å gi ansattgaver i Norkart. Dette bø tidvis på utfordringer, da ansatte kunne få forskjellige gaver og ikke alltid til riktig tid. Sonja hadde hørt om Glede gjennom et tips fra en kollega, og da hun oppdaget Glede-integrasjonen i Huma tenkte hun at dette kunne spare Norkart for mye tid og frustrasjon. Hun forteller hvordan det var å komme i gang med Glede: 

Det var veldig intuitivt, og jeg synes det var enkelt å navigere seg fram i Glede. Tjenesten har få, men gode funksjoner, som gjør at det skal lite til for å komme i gang.

Sonja gir ansatte gaver til blant annet jubileer og bursdager gjennom Huma sin Glede-integrasjon. Dette har flere fordeler for henne: 

Etter å ha brukt Glede og Huma i over ett år forteller Sonja om de største fordelen kombinasjonen gir henne.

"Vi sparer tid i flere ledd på å bruke Glede og Huma. Ledere og mellomledere slipper å bruke tid på gaver, vi i HR bruker mindre tid på å administrere det, mens det er superenkelt for økonomi å håndtere den månedlige EHF-fakturaen fra Glede."

Både HR, økonomi og ledere i selskapet sparer mye tid etter at vi begynte å bruke Glede + Huma til ansattgaver

I tillegg trekker hun frem fordelen ved at Glede-gavekortet kan brukes overalt.

“Vi har ansatte fra 25 til 65+ år, med ulike interesser og prioriteringer. Vi i HR vet ikke hva hver enkelt ønsker seg. Med Glede kan de bruke gaven på det de selv vil, og vi slipper å tenke på hva vi skal gi.”

Strålende tilbakemeldinger fra ansatte

Sonja forteller at hun har fått en rekke tilbakemeldinger fra ansatte som synes det fungerer helt strålende. De liker at de kan bruke det på hva de vil, når de vil, og at gavekortet alltid er tilgjengelig i lomma.

“Det fungerer så godt at Glede har blitt den eneste gaven vi gir til ansatte. Til tross for at ansatte skjønner hva som kommer er de superhappy med det!”

Integrasjonen fungerer rett og slett perfekt for oss

Sonja avslutter med å gi en varm anbefaling av Huma + Glede til andre selskaper.

“Jeg kommer faktisk ikke på en eneste ting som kunne forbedret systemet for gavegiving som vi får gjennom Huma og Glede. Jeg er sikker det ville vært nyttig for mange andre selskaper.”

Kontakt oss

Tusen takk! Vi har mottatt din henvendelse, og vil svare deg i løpet av én arbeidsdag 😊
Uups! Noe gikk galt, og meldingen ble ikke sendt. Prøv igjen, eller ta kontakt med oss på e-post: support@glede.app

Kom i gang med Glede

Gi gavekortet som kan brukes overalt — i butikk og på nett!

(function () { const DEBUG = false; const log = (...a) => DEBUG && console.log('[weglot-ui]', ...a); const normalize = (code) => { if (!code) return ''; code = String(code).toLowerCase(); if (code.includes('-')) code = code.split('-')[0]; // en-US -> en if (code === 'nb') code = 'no'; // Bokmål -> 'no' if (code === 'se') code = 'sv'; // common slip return code; }; // We cache a template per language so we can rebuild the list let TEMPLATES = { inner: {}, outer: {} }; function cacheTemplates(wrapper) { // Grab any [lang] blocks (from toggle OR list) and store inner/outer wrapper.querySelectorAll('[lang]').forEach(el => { const lang = normalize(el.getAttribute('lang')); if (!lang) return; if (!TEMPLATES.inner[lang]) TEMPLATES.inner[lang] = el.innerHTML; if (!TEMPLATES.outer[lang]) TEMPLATES.outer[lang] = el.outerHTML; }); log('cached templates', TEMPLATES); } function updateSwitcher(currentLang) { currentLang = normalize(currentLang); const wrappers = document.querySelectorAll('.wg-element-wrapper.sw6'); if (wrappers.length === 0) { log('no wrappers'); return; } else { wrappers.forEach(wrapper => { const toggle = wrapper.querySelector('.wg-dropdown-toggle'); const list = wrapper.querySelector('.wg-dd-1-list'); if (!toggle || !list) { log('missing toggle/list'); return; } // Ensure templates are cached (first run on this page load) if (!TEMPLATES.inner.no || !TEMPLATES.inner.sv || !TEMPLATES.inner.en) { cacheTemplates(wrapper); } // If any template still missing, bail (structure not as expected) if (!TEMPLATES.inner.no || !TEMPLATES.inner.sv || !TEMPLATES.inner.en) { log('incomplete templates'); return; } // 1) Set TOGGLE visual (attribute + optional state class + content) toggle.setAttribute('lang', currentLang); toggle.classList.remove('is-no','is-sv','is-en'); toggle.classList.add(`is-${currentLang}`); toggle.innerHTML = TEMPLATES.inner[currentLang]; // 2) Rebuild LIST to contain ONLY the two other languages (fresh each time) const ALL = ['no','sv','en']; const others = ALL.filter(l => l !== currentLang); // Build a clean list using the captured OUTER html so structure/classes match const htmlA = TEMPLATES.outer[others[0]]; const htmlB = TEMPLATES.outer[others[1]]; // Clear and insert exactly two items list.innerHTML = ''; // Insert via range to keep outerHTML intact const r1 = document.createRange(); r1.selectNode(list); list.appendChild(r1.createContextualFragment(htmlA)); const r2 = document.createRange(); r2.selectNode(list); list.appendChild(r2.createContextualFragment(htmlB)); // Optional: normalize classes on list items too list.querySelectorAll('[lang]').forEach(el => { const l = normalize(el.getAttribute('lang')); el.classList.remove('is-no','is-sv','is-en'); el.classList.add(`is-${l}`); }); log('updated → current:', currentLang, 'others:', others); } ) } } // Event delegation (survives DOM swaps) document.addEventListener('click', function (e) { const link = e.target.closest('.wg-element-wrapper.sw6 [lang]'); if (!link) return; e.preventDefault(); const lang = normalize(link.getAttribute('lang')); // Trigger Weglot switch (subdomain setups will reload; path setups will not) document.cookie = "glede_locale=" + lang + "; path=/; domain=.glede.app; max-age=31536000"; Weglot.switchTo(lang); // Do NOT call update here for subdomain setups; page will reload anyway. }); // Run AFTER Weglot has rendered (important on subdomain reload) function runAfterWeglotReady() { const run = () => { const lang = normalize(Weglot.getCurrentLang()); // Wait one frame to let Weglot paint its switcher nodes requestAnimationFrame(() => updateSwitcher(lang)); }; Weglot.on('initialized', run); // If already initialized (script included late), run immediately if (Weglot.getCurrentLang && Weglot.getCurrentLang()) run(); // For path-based projects (no reload), update visuals after change Weglot.on('languageChanged', (newLang) => { updateSwitcher(newLang) }); } // Boot when DOM is ready if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', runAfterWeglotReady); } else { runAfterWeglotReady(); } })();