5. Desember 2023
3
minutter lesetid

BustByte traff blink med julegavene ved å bruke Glede

Eirik Fosse
Gründer og utvikler i BustByte

BustByte er et IT-konsulentselskap basert i Oslo. De er 11 ansatte, og hjelper kundene sine med å utvikle skreddersydde IT-løsninger av høy kvalitet. 

Eirik Fosse er gründer i selskapet, og har ansvaret for å gi gaver til de ansatte. De har et tett og godt miljø, og Eirik anser julegavene som en ekstra viktig oppmerksomhet, for å vise at de setter pris på jobben som er lagt ned i løpet av året. I tillegg synes han det er fint at man har mulighet til å gi gaver som de ansatte slipper å skatte av

Eirik forteller litt om hva de ser etter når de gir gaver til ansatte: 

Vi ønsker at gaven treffer alle. De ansatte skal få bruk for den. I tillegg er det viktig at det er enkelt for oss å kjøpe.

Tidligere har BustByte vekslet mellom å gi fysiske gavekort knyttet til spesifikke utsalgssteder, og andre fysiske gaver til jul. Men Eirik har erfart utfordringer med begge løsningene. 

“Hovedproblemet med andre gavekort er at de ofte må brukes et spesifikt sted. Det endte ofte med at de ansatte glemte å bruke gavekortet.”

Når vi har gitt fysiske gaver har det vært vanskelig å finne en gave som treffer alle bra. Folk har ulike preferanser.

Glede gjorde jobben med julegavene enkelt

Da en ansatt i BustByte tipset Eirik om Glede ble han umiddelbart interessert. 

Jeg sjekket ut produktet, og det så ut som en veldig bra løsning, som lar de ansatte kjøpe det de vil!

I etterkant har han gjort noen refleksjoner rundt hva han likte best med Glede: 

I etterkant har Eirik hørt med mottakerne om hvordan opplevelsen var. 

“Tilbakemeldingene jeg har fått har vært utelukkende positive. Vi har alle ulike interesser og ting vi trenger. Med Glede kan hver enkelt ansatt kjøpe seg noe de faktisk har glede av.”

De fleste brukte gavekortet sitt på en fysisk gave, men jeg vet at en av våre ansatte brukte det på 5-10 måltider fra Fodoora.

Eirik er ikke i tvil om at han vil anbefale andre selskaper å gi julegaver med Glede.

“Det er veldig enkelt å både gi og bruke. I tillegg får alle noe de ønsker seg. Uten å røpe hva årets julegave blir, kan jeg si med sikkerhet at Glede var en stor suksess for oss i fjor!”, avslutter han.

Gi årets julegave med Glede? Klikk her!

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