Verkliga resultat från butikskedjor, hotell, lager och bemanningsföretag som digitaliserat sin bemanning med ipool.
; import { motion, useScroll, useTransform } from
; import { Check, Star, ArrowRight, Quote, Headphones, Rocket, Puzzle, Sparkles, ShieldCheck, Clock, Link2, Heart } from
; import { WaveLine, ArcTopRight, CircleBlob, CurveDown } from
Struktur och trygghet i förskolevardagen med iPool
Glasscaféet som fick en lugnare sommar — första säsongen med iPool
Från 19 samtal till 3 minuters bemanning — sommaren som höll hela vägen
Hela bemanningsaffären i ett system — från kundförfrågan till faktura
Från pappersscheman till halverad hanteringstid — bemanning i mobilen
Efter 40 år med papper — en plattform som höll hela vägen
, }, ]; const ease: [number, number, number, number] = [0.25, 0.1, 0, 1]; const testimonials = [ { img:
Att allt finns samlat i en app gör det enkelt och smidigt, både för arbetsgivare och medarbetare.
Med ipool kan våra kunder samla egen och inhyrd personal i samma lösning, och uppnå en effektivitet som tidigare inte var möjlig.
Med helhetslösningen ipool x tiltid har vi en smart och intuitiv lösning som höjt personalnöjdheten och gästupplevelsen.
Det vi fastnade för var ipools enkelhet och användarvänlighet, både för schemaläggare och medarbetare.
Med ipool kan vi lösa bemanning på bara några minuter. Det har minskat stressen och skapat en starkare helhet i butiken.
Genom att använda ipool kan vi effektivt planera och koordinera vår personalstyrka.
ipool är ett smidigt sätt att hantera schema för våra konsulter, kundförfrågningar och kommunikation.
, ]; export default function Kundcase() { const scrollRef = useRef<HTMLDivElement>(null); const heroRef = useRef(null); const { scrollYProgress } = useScroll({ target: heroRef, offset: [
] }); const heroY = useTransform(scrollYProgress, [0, 1], [0, 100]); const heroOpacity = useTransform(scrollYProgress, [0, 0.8], [1, 0]); return ( <Layout> <SEO title=
Verkliga resultat från butikskedjor, hotell, lager och bemanningsföretag som digitaliserat sin bemanning med ipool.
> {/* Backdrop image with soft fade */} <div className=
}} width={1200} height={675} sizes=
> {/* LEFT — copy */} <motion.div style={{ y: heroY, opacity: heroOpacity }} initial={{ opacity: 0, y: 20 }} animate={{ opacity: 1, y: 0 }} transition={{ duration: 0.7, ease }} className=
> <motion.div initial={{ opacity: 0 }} animate={{ opacity: 1 }} transition={{ duration: 0.6 }} className=
text-[11px] font-medium uppercase tracking-[0.22em] text-foreground/75
font-serif text-[2.75rem] sm:text-6xl md:text-7xl lg:text-[5.25rem] leading-[0.98] tracking-[-0.03em]
>verkliga kunder.</span> </h1> <p className=
> Personalintensiva verksamheter — butik, hotell, lager och bemanning — som löst bemanningen med ipool. </p> {/* Tight stat row */} <motion.div initial=
variants={{ hidden: {}, visible: { transition: { staggerChildren: 0.08, delayChildren: 0.35 } } }} className=
> {[ { value: 900, suffix:
, withStar: true }, ].map((s, i) => ( <motion.div key={i} variants={{ hidden: { opacity: 0, y: 12 }, visible: { opacity: 1, y: 0 } }} className=
> <p className=
> {s.value !== null ? ( <AnimatedCounter value={s.value as number} suffix={s.suffix ??
} /> ) : ( <> {s.display} {s.withStar && <Star className=
>{s.label}</p> </motion.div> ))} </motion.div> <div className=
> Boka demo <ArrowRight className=
group relative block aspect-[4/5] max-w-[380px] ml-auto rounded-[28px] overflow-hidden shadow-[0_30px_80px_-30px_rgba(20,40,30,0.45)] hover:shadow-[0_40px_100px_-30px_rgba(20,40,30,0.55)] transition-all duration-500 hover:-translate-y-1 rotate-[1.5deg] hover:rotate-0
text-[11px] font-semibold uppercase tracking-[0.22em] text-white/80 mb-2
> Struktur i den dagliga driften hos över 270 ICA-butiker </p> <span className=
strokeWidth={2} /> </span> </div> </Link> {/* Floating quote chip */} <motion.div initial={{ opacity: 0, scale: 0.9 }} animate={{ opacity: 1, scale: 1 }} transition={{ delay: 0.7, duration: 0.6, ease }} className=
text-[12.5px] italic text-foreground/85 leading-snug
>Robin · ICA Borgholm</p> </motion.div> </motion.div> </div> </section> {/* ===== Customer cases carousel ===== */} <section id=
text-[11px] font-semibold uppercase tracking-[0.22em] text-forest mb-4
font-serif text-3xl md:text-5xl lg:text-[52px] leading-[1.05] tracking-[-0.025em]
>i hela Norden.</span> </h2> </div> </div> </div> <div className=
}} transition={{ delay: (i % 4) * 0.06, duration: 0.55, ease }} whileHover={{ scale: 1.02, y: -4 }} className=
> <Link to={c.href} className=
> <img src={c.img} alt={c.tag} loading=
strokeWidth={2} /> </span> </div> </Link> </motion.div> ))} </div> </div> </section> {/* ===== Att vara kund hos ipool — tre pelare ===== */} <section className=
> <motion.p initial={{ opacity: 0 }} whileInView={{ opacity: 1 }} viewport={{ once: true }} className=
> Att vara kund hos ipool </motion.p> <motion.h2 initial={{ opacity: 0, y: 20 }} whileInView={{ opacity: 1, y: 0 }} viewport={{ once: true }} transition={{ duration: 0.8, ease }} className=
> En partner, inte bara <span className=
>en plattform.</span> </motion.h2> <motion.p initial={{ opacity: 0 }} whileInView={{ opacity: 1 }} viewport={{ once: true }} transition={{ delay: 0.15, duration: 0.7 }} className=
> Vi finns med från första introduktion till daglig drift — med riktig support, snabb onboarding och integrationer som tar bort dubbelarbete. </motion.p> </div> <div className=
> {[ { icon: Headphones, tag:
Svensktalande support som kan både butik, lager och bemanning. Genomsnittlig första responstid på under en timme.
, }, { icon: Rocket, tag:
Färdiga mallar för bransch och roll. Vi importerar er personal, era scheman och era regler — så är ni igång.
, }, { icon: Puzzle, tag:
Schema, tid, lön och passage i ett flöde. Vi bygger nya integrationer löpande tillsammans med kunder och partners.
, }, ].map((p, i) => { const toneRing = p.tone ===
; return ( <motion.div key={p.tag} initial={{ opacity: 0, y: 24 }} whileInView={{ opacity: 1, y: 0 }} viewport={{ once: true, margin:
}} transition={{ delay: i * 0.1, duration: 0.6, ease }} className=
> <div aria-hidden className=
strokeWidth={1.75} /> </span> <p className=
font-serif text-2xl md:text-[26px] leading-[1.15] tracking-[-0.015em] text-foreground
mt-6 space-y-2.5 pt-5 border-t border-foreground/[0.07]
flex items-center gap-3 text-[13.5px] text-foreground/80
strokeWidth={2.2} /> {b} </li> ))} </ul> </motion.div> ); })} </div> </div> </section> {/* ===== Integrationer — best-of-breed flöde ===== */} <IntegrationsSection /> {/* ===== Manifest / filosofi ===== */} <section className=
> <motion.div initial={{ opacity: 0, y: 20 }} whileInView={{ opacity: 1, y: 0 }} viewport={{ once: true }} transition={{ duration: 0.8, ease }} className=
text-[11px] font-medium uppercase tracking-[0.22em] text-foreground/70
font-serif text-3xl md:text-5xl lg:text-[56px] leading-[1.1] tracking-[-0.025em]
>inget</span> riktigt bra. </motion.h2> <motion.p initial={{ opacity: 0 }} whileInView={{ opacity: 1 }} viewport={{ once: true }} transition={{ delay: 0.2, duration: 0.7 }} className=
> Våra kunder får en helhet av system som var för sig är bäst på sitt arbetsmoment. ipool tar bemanningen — och pratar smidigt med tid, lön, passage och HR. Mindre dubbelarbete, mer fokus på medarbetarna. </motion.p> <div className=
> {[ { icon: Clock, value: 18, suffix:
}, { icon: ShieldCheck, value: 98, suffix:
}, { icon: Sparkles, value: 4.6, suffix:
}, ].map(({ icon: Icon, value, suffix, label }, i) => ( <motion.div key={label} initial={{ opacity: 0, y: 20 }} whileInView={{ opacity: 1, y: 0 }} viewport={{ once: true }} transition={{ delay: i * 0.1, duration: 0.6, ease }} className=
> {Number.isInteger(value) ? <AnimatedCounter value={value as number} suffix={suffix} /> : `${value}${suffix}`} </p> <p className=
>{label}</p> </motion.div> ))} </div> </div> </section> {/* CTA */} <section className=
> <motion.div initial={{ opacity: 0, y: 40 }} whileInView={{ opacity: 1, y: 0 }} viewport={{ once: true }} transition={{ duration: 0.8, ease }} > <h2 className=
>Boka en kostnadsfri demo och se hur ipool kan hjälpa er verksamhet.</p> <Button size=