20. Februar 2025
3
minutter lesetid

Hvordan Norsk Sykepleierforbund traff blink med julegavene gjennom Glede

Oliver Os
Kommersiell leder i Glede

Norsk Sykepleierforbund (NSF) er en landsdekkende fagforening og interesseorganisasjon for sykepleiere. De er en sentral aktør i norsk helsepolitikk, og med sine drøye 100.000 medlemmer jobber de aktivt for å sikre gode arbeidsvilkår og profesjonell utvikling for sine medlemmer. 

Jahne Granskogen er administrasjonskonsulent i NSF, og har i flere år hatt ansvaret for å gi gaver til ansatte i forbindelse med blant annet jul, bursdager og jubiléer. Med over 300 ansatte spredt på flere avdelinger over hele Norge har ikke denne jobben alltid vært enkel. Hun trekker frem de tre største utfordringene de har opplevd:

Jahne misliker å sløse med tiden sin, og er ikke fremmed for å prøve nye løsninger som kan forenkle prosesser. Da hun fikk høre om Glede fra en kollega tenkte hun at dette kunne være god løsning de burde teste. Men som en ny løsning på markedet var det usikkerhet knyttet til om det var en god idé.

“Mange er skeptiske til nye løsninger. Det man har brukt tidligere er trygt og godt, og vi var usikre på hvordan ansatte ville respondere på digitale gavekort. Til slutt bestemte vi oss heldigvis for å teste Glede.”

Jeg vil kjøpe det jeg selv ønsker meg. Og det vet jeg at mange andre også ønsker.

Etter valget ble truffet lagde Jahne seg en bedriftsprofil for selskapet, og var klar til å planlegge utsendelsen. Det var flere ting hun likte ved løsningen: 

Det fungerte kjempefint. Hele jobben var gjort på noen få minutter.

I etterkant av gaveutsendelsen har den initielle skepsisen forduftet, da de ansatte har vært strålende fornøyd. Jahne trekker frem det hun anser som de største fordelene for mottakere:

På litt over en måned er kan jeg se at over halvparten av gavene er brukt. Det er jeg veldig fornøyd med!

Jahne avslutter med å fortelle at hun er superhappy med julegaveutsendelsen, og hun ser frem til å bruke Glede til fremtidige gaveanledninger.

Vil du spre Glede fra ditt selskap? Klikk her for å komme i gang på 1-2-3

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(); } })();