{"id":31762,"date":"2026-07-16T17:35:19","date_gmt":"2026-07-16T14:35:19","guid":{"rendered":"https:\/\/mapsly.com\/?post_type=alternatives&#038;p=31762"},"modified":"2026-07-16T17:35:19","modified_gmt":"2026-07-16T14:35:19","slug":"mapsly-vs-salesrabbit","status":"publish","type":"alternatives","link":"https:\/\/mapsly.com\/de\/alternatives\/mapsly-vs-salesrabbit\/","title":{"rendered":"Mapsly gegen SalesRabbit"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"31762\" class=\"elementor elementor-31762\" data-elementor-post-type=\"alternatives\">\n\t\t\t\t<div class=\"elementor-element elementor-element-75cc62e e-con-full e-flex e-con e-parent\" data-id=\"75cc62e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-661219b elementor-widget elementor-widget-html\" data-id=\"661219b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!--\nMAPSLY vs SALESRABBIT COMPARISON PAGE (v3 from-scratch re-verification build) - ELEMENTOR READY\nPaste this entire block into an Elementor HTML widget. Self-contained:\nfonts + icons embedded; CSS scoped under .mce-vs-salesrabbit.\n\nBuilt 2026-06-13 by mapsly-vs-builder from wiki\/competitors\/salesrabbit\/ (audit v3.0, all claims re-verified live 2026-06-13).\nGrounding rule: every SalesRabbit claim traces to a vendor-published URL retrieved\n2026-06-13 (see the Footnotes section); every undocumented capability renders\nas an X covered by the dated absence-of-evidence note. Mapsly's side is from\nmapsly-brand\/facts.md.\n-->\n\n<meta charset=\"utf-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Poppins:wght@300;400;500;600;700;800;900&family=Outfit:wght@400;500;600;700&display=swap\" rel=\"stylesheet\">\n<script src=\"https:\/\/code.iconify.design\/iconify-icon\/2.3.0\/iconify-icon.min.js\"><\/script>\n<style>\n\/* ===== _base ===== *\/\n\/* mapsly-vs-builder _base\/tokens.css\n *\n * Shared design tokens for every Mapsly-vs-{competitor} page.\n *\n * The assembler does ONE string-replace pass on this file replacing every\n * occurrence of `.mce-vs-salesrabbit` with `.mce-vs-{slug}` before concatenating\n * into the final HTML. Do not hardcode `.mce-vs-portatour` (or any other\n * concrete slug) anywhere in this file.\n *\n * Variable names are stable: blocks reference them as `var(--purple)` etc.\n * Adding a new variable here is safe; renaming an existing one will break\n * every block that references it.\n *\/\n\n.mce-vs-salesrabbit {\n  \/* Base body type \u00e2\u20ac\u201d applies to the page wrapper. Block-level overrides happen\n     inside each block's styles.css using more specific selectors. *\/\n  font-family: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n  font-weight: 300;\n  font-size: 18px;\n  line-height: 1.78;\n  color: #677294;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n\n  \/* Color tokens \u00e2\u20ac\u201d purple ladder *\/\n  --purple: #6512BE;\n  --purple-h: #5A19B8;\n  --purple-lt: #F0EBFF;\n  --purple-bd: #D4C0FF;\n  --purple-mid: #9B51E0;\n  --purple-deep: #2E0A6B;\n  --purple-dark: #4D13A0;\n  --bg-deep: #1E0650;\n\n  \/* Color tokens \u00e2\u20ac\u201d ink and body text *\/\n  --ink: #222D39;\n  --body: #677294;\n  --soft: #8585A0;\n  --muted: #AEAEC0;\n  --border: #E5E5EE;\n\n  \/* Color tokens \u00e2\u20ac\u201d accents (used sparingly, never as backgrounds at scale) *\/\n  --pink: #F472B6;\n  --pink-soft: #FBCFE8;\n  --gold-soft: #FDE68A;\n  --orange-warm: #FFB870;\n  --magenta: #D946EF;\n\n  \/* Color tokens \u00e2\u20ac\u201d semantic *\/\n  --green: #16A34A;\n  --green-lt: #F0FDF4;\n  --green-bd: #BBF7D0;\n  --z-red: #E42527;\n\n  \/* Background tokens *\/\n  --hero-bg: #F2F2F2;\n  --sec-bg: #F7F7FB;\n\n  \/* Shadow tokens *\/\n  --sh: 0 1px 3px rgba(34, 45, 57, .06), 0 4px 12px rgba(34, 45, 57, .08);\n  --sh-lg: 0 8px 32px rgba(34, 45, 57, .1), 0 2px 8px rgba(34, 45, 57, .05);\n}\n\n\/* Box-sizing reset, scoped \u00e2\u20ac\u201d do NOT use a global `*` reset, it would leak\n   into Elementor's CSS scope. *\/\n.mce-vs-salesrabbit *,\n.mce-vs-salesrabbit *::before,\n.mce-vs-salesrabbit *::after {\n  box-sizing: border-box;\n}\n\n.mce-vs-salesrabbit img {\n  max-width: 100%;\n  display: block;\n}\n\n\n\/* ===== _base ===== *\/\n\/* mapsly-vs-builder _base\/primitives.css\n *\n * Layout primitives shared across every Mapsly-vs-{competitor} page:\n * containers (.w \/ .w-wide \/ .w-tight), section spacing (.sec), section\n * headers (.hd \/ .eyebrow \/ .sec-title \/ .sec-sub), buttons (.btn variants),\n * and scroll-reveal states (.rv).\n *\n * Block-local primitives (.ctab-* for snapshot tables, .dd-* for deep dives,\n * etc.) live in their respective block's styles.css. Anything documented in\n * mapsly-web-page-design\/conventions.md as page-scale lives here.\n *\n * .mce-vs-salesrabbit substitution applies to this file at assembly time.\n *\/\n\n\/* Layout containers ----------------------------------------------------- *\/\n\n.mce-vs-salesrabbit .w {\n  max-width: 1200px;\n  margin: 0 auto;\n  padding: 0 40px;\n}\n\n.mce-vs-salesrabbit .w-wide {\n  max-width: 1280px;\n  margin: 0 auto;\n  padding: 0 32px;\n}\n\n.mce-vs-salesrabbit .w-tight {\n  max-width: 1040px;\n  margin: 0 auto;\n  padding: 0 44px;\n}\n\n\/* Section spacing -------------------------------------------------------- *\/\n\n.mce-vs-salesrabbit .sec {\n  padding: 60px 0;\n}\n\n.mce-vs-salesrabbit .sec-gray {\n  background: var(--sec-bg);\n}\n\n\/* Typography primitives -------------------------------------------------- *\/\n\n.mce-vs-salesrabbit h1,\n.mce-vs-salesrabbit h2,\n.mce-vs-salesrabbit h3,\n.mce-vs-salesrabbit h4 {\n  color: var(--ink);\n  letter-spacing: -.02em;\n  font-weight: 700;\n  line-height: 1.11;\n  margin: 0;\n  padding: 0;\n  font-family: 'Poppins',-apple-system,BlinkMacSystemFont,sans-serif;\n  text-wrap: balance;\n}\n\n.mce-vs-salesrabbit p,\n.mce-vs-salesrabbit .sec-sub,\n.mce-vs-salesrabbit .hero-sub,\n.mce-vs-salesrabbit .hero-kicker {\n  text-wrap: pretty;\n}\n\n\/* Inline brand emphasis \u00e2\u20ac\u201d wrap the \"Mapsly\" name in body copy at high-impact spots\n   (lead sentences, card headers, first mention per section). Use in moderation;\n   purpling every occurrence reads busy. *\/\n.mce-vs-salesrabbit .brand {\n  color: var(--purple);\n  font-weight: 600;\n}\n\n\/* Eyebrow + section header ----------------------------------------------- *\/\n\n.mce-vs-salesrabbit .eyebrow {\n  font-size: 16px;\n  font-weight: 400;\n  line-height: 25px;\n  color: var(--purple);\n  letter-spacing: .14em;\n  text-transform: uppercase;\n  display: block;\n  margin-bottom: 16px;\n}\n\n.mce-vs-salesrabbit .hd {\n  margin-bottom: 40px;\n  text-align: center;\n}\n\n.mce-vs-salesrabbit .sec-title {\n  font-size: clamp(30px, 3.5vw, 45px);\n  margin-bottom: 16px;\n  letter-spacing: -.02em;\n  line-height: 1.11;\n  text-wrap: balance;\n}\n\n.mce-vs-salesrabbit .sec-sub {\n  font-size: 18px;\n  font-weight: 300;\n  color: var(--body);\n  line-height: 1.78;\n  max-width: 920px;\n  margin: 0 auto;\n  text-wrap: balance;\n}\n\n@media (max-width: 600px) {\n  .mce-vs-salesrabbit .sec-title { font-size: 32px; line-height: 38px; }\n}\n\n\/* Buttons ---------------------------------------------------------------- *\/\n\n.mce-vs-salesrabbit .btn {\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: 8px;\n  font-family: 'Poppins',-apple-system,BlinkMacSystemFont,sans-serif;\n  font-size: 17px;\n  font-weight: 600;\n  padding: 15px 30px;\n  border-radius: 4px;\n  border: none;\n  cursor: pointer;\n  text-decoration: none;\n  transition: all .16s ease;\n  \/* Translatable text must be allowed to WRAP \u00e2\u20ac\u201d a long German label (e.g. \"Mehr \u00c3\u00bcber den\n     Besuchsplaner erfahren\") would overflow\/clip a nowrap button. Grow to 2 lines instead. *\/\n  white-space: normal;\n  text-align: center;\n  line-height: 1.3;\n}\n\n.mce-vs-salesrabbit .btn-purple {\n  background: var(--purple);\n  color: #fff;\n  box-shadow: 0 2px 8px rgba(101, 18, 190, .3);\n}\n\n.mce-vs-salesrabbit .btn-purple:hover {\n  background: var(--purple-h);\n  transform: translateY(-1px);\n  box-shadow: 0 6px 18px rgba(101, 18, 190, .35);\n}\n\n.mce-vs-salesrabbit .btn-outline {\n  background: transparent;\n  color: var(--purple);\n  border: 2px solid var(--purple);\n  padding: 13px 28px;\n}\n\n.mce-vs-salesrabbit .btn-outline:hover {\n  border-color: var(--purple-h);\n  color: var(--purple-h);\n  background: var(--purple-lt);\n}\n\n.mce-vs-salesrabbit .btn-big {\n  font-size: 18px;\n  padding: 17px 38px;\n}\n\n\/* Keyboard focus ring \u00e2\u20ac\u201d visible focus for keyboard\/AT users (WCAG 2.4.7). *\/\n.mce-vs-salesrabbit .btn:focus-visible {\n  outline: 2px solid var(--purple);\n  outline-offset: 2px;\n}\n\n.mce-vs-salesrabbit .btn-arrow {\n  transition: transform .2s;\n}\n\n.mce-vs-salesrabbit .btn:hover .btn-arrow {\n  transform: translateX(3px);\n}\n\n\/* Scroll-reveal states --------------------------------------------------- *\/\n\n.mce-vs-salesrabbit .rv {\n  transition: opacity .55s ease, transform .55s ease;\n}\n\n.mce-vs-salesrabbit .rv.anim {\n  opacity: 0;\n  transform: translateY(16px);\n}\n\n.mce-vs-salesrabbit .rv.on {\n  opacity: 1;\n  transform: translateY(0);\n}\n\n\/* Respect reduced-motion \u00e2\u20ac\u201d show content immediately, skip the reveal animation. *\/\n@media (prefers-reduced-motion: reduce) {\n  .mce-vs-salesrabbit .rv,\n  .mce-vs-salesrabbit .rv.anim,\n  .mce-vs-salesrabbit .rv.on { transition: none; opacity: 1; transform: none; }\n}\n\n\/* Responsive baseline ---------------------------------------------------- *\/\n\n@media (max-width: 640px) {\n  .mce-vs-salesrabbit .w,\n  .mce-vs-salesrabbit .w-wide,\n  .mce-vs-salesrabbit .w-tight {\n    padding: 0 22px;\n  }\n  .mce-vs-salesrabbit .sec {\n    padding: 52px 0;\n  }\n}\n\n\n\/* ===== hero-brand-pill ===== *\/\n\/* HERO\u00e2\u20ac\u201dside-by-side text + smaller devices *\/\n.mce-vs-salesrabbit .hero{background:var(--hero-bg);padding:48px 0 48px;border-bottom:1px solid var(--border);position:relative;overflow:hidden}\n.mce-vs-salesrabbit .hero::before{content:'';position:absolute;top:-220px;right:-160px;width:680px;height:680px;border-radius:50%;background:radial-gradient(circle,rgba(101,18,190,.08) 0%,rgba(101,18,190,0) 65%);pointer-events:none;z-index:0}\n.mce-vs-salesrabbit .hero::after{content:'';position:absolute;bottom:-180px;left:-140px;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgba(244,114,182,.07) 0%,rgba(244,114,182,0) 70%);pointer-events:none;z-index:0}\n\/* v4.1 Fix 3: hero grid inversion\u00e2\u20ac\u201dtext column now dominant (1.2fr \/ 1fr), align-items center\n   so the device imagery doesn't sit above the H1 baseline. *\/\n.mce-vs-salesrabbit .hero-inner{position:relative;z-index:1;display:grid;grid-template-columns:1.5fr 1fr;gap:36px;align-items:center}\n.mce-vs-salesrabbit .hero-text{display:flex;flex-direction:column;align-items:flex-start}\n.mce-vs-salesrabbit .hero-brand-row{position:relative;z-index:1;text-align:center;margin-bottom:80px}\n\n\/* hero brand-row *\/\n.mce-vs-salesrabbit .hero-brand{display:inline-flex;align-items:center;gap:42px;padding:22px 44px;background:#fff;border:1px solid var(--border);border-radius:100px;box-shadow:var(--sh-lg)}\n\/* v6.10: Logos sized to balance optical weight\u00e2\u20ac\u201dMapsly's bigger pin reads larger at\n   the same height, so the wordmark height is tuned down slightly. *\/\n.mce-vs-salesrabbit .hero-brand img.mapsly-mark{height:64px;width:auto;display:block;object-fit:contain;object-position:center}\n.mce-vs-salesrabbit .hero-brand img.comp-mark{height:60px;width:auto;display:block;object-fit:contain;object-position:center}\n.mce-vs-salesrabbit .hero-brand .vs-pill{font-size:13px;font-weight:800;letter-spacing:.18em;color:var(--soft);text-transform:uppercase;padding:0 2px}\n\n.mce-vs-salesrabbit .hero h1{font-size:clamp(40px,4.4vw,60px);font-weight:700;color:var(--ink);line-height:1.05;letter-spacing:-.025em;margin-bottom:10px;text-wrap:balance}\n.mce-vs-salesrabbit .hero h1 .accent{background:linear-gradient(100deg,var(--orange-warm) 0%,var(--pink) 40%,var(--magenta) 70%,var(--purple) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}\n.mce-vs-salesrabbit .hero h1 .vendor-them{color:var(--soft);font-weight:600;letter-spacing:-.018em}\n.mce-vs-salesrabbit .hero-kicker{font-size:clamp(18px,1.9vw,22px);font-weight:500;color:var(--soft);line-height:1.4;margin-bottom:10px;letter-spacing:-.005em}\n.mce-vs-salesrabbit .hero-kicker .vendor{font-weight:700;color:var(--ink)}.mce-vs-salesrabbit .hero-kicker .us-hl{background:linear-gradient(100deg,var(--orange-warm) 0%,var(--pink) 40%,var(--magenta) 70%,var(--purple) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;font-weight:700}\n.mce-vs-salesrabbit .hero-sub{font-size:20px;font-weight:300;color:var(--body);line-height:1.6;max-width:600px;margin:0 0 28px;text-align:left}\n.mce-vs-salesrabbit .hero h1,.mce-vs-salesrabbit .hero-kicker{text-align:left;align-self:flex-start}\n.mce-vs-salesrabbit .hero-actions{display:flex;gap:12px;flex-wrap:nowrap;justify-content:flex-start}\n\n\/* hero device illustration\u00e2\u20ac\u201dshifted right, bigger phone *\/\n.mce-vs-salesrabbit .hero-devices{position:relative;height:396px;width:calc(100% + 110px);margin-right:-110px;transform:translateX(60px)}\n.mce-vs-salesrabbit .hero-devices .laptop{position:absolute;bottom:0;left:50%;transform:translateX(-54%);width:100%;max-width:648px;filter:drop-shadow(0 28px 56px rgba(34,45,57,.22))}\n.mce-vs-salesrabbit .hero-devices .phone{position:absolute;bottom:0;right:5%;width:22%;max-width:230px;filter:drop-shadow(0 26px 52px rgba(34,45,57,.3));z-index:2}\n\n\/* RESPONSIVE *\/\n@media(max-width:1000px){\n  .mce-vs-salesrabbit .hero-inner{grid-template-columns:1fr;gap:48px}\n  .mce-vs-salesrabbit .hero-devices{height:380px;max-width:560px;width:100%;margin:0 auto;transform:none}\n}\n@media(max-width:640px){\n  .mce-vs-salesrabbit .hero{padding:48px 0 44px}\n  .mce-vs-salesrabbit .hero-brand{gap:16px;padding:14px 22px;max-width:100%;flex-wrap:wrap;justify-content:center}\n  .mce-vs-salesrabbit .hero-brand img.mapsly-mark{height:42px}\n  .mce-vs-salesrabbit .hero-brand img.comp-mark{height:40px}\n  .mce-vs-salesrabbit .hero-brand-row{margin-bottom:40px}\n  .mce-vs-salesrabbit .hero-sub{max-width:100%}\n  .mce-vs-salesrabbit .hero-actions{flex-wrap:wrap;gap:10px}\n  .mce-vs-salesrabbit .hero-actions .btn{flex:1 1 auto;min-width:140px;justify-content:center;font-size:17px}\n  .mce-vs-salesrabbit .hero-devices{height:260px;width:100%;margin-right:0;transform:none}\n  .mce-vs-salesrabbit .hero-devices .laptop{bottom:0;max-width:88%;transform:translateX(-54%)}\n  .mce-vs-salesrabbit .hero-devices .phone{bottom:0;right:0;width:24%;top:auto}\n}\n\n\n\/* ===== rail-floating-nav ===== *\/\n\/* rail-floating-nav \u00e2\u20ac\u201d Fixed-position left-rail nav with action CTAs + Ask-your-AI picker.\n   Lives in the page's left gutter (outside the centered .w container). Hidden on\n   narrow viewports \u00e2\u20ac\u201d mobile uses a sticky top nav-bar instead.\n   Extracted from page-vs-portatour-v4.html (lines ~855-908 + responsive). *\/\n\n\/* Floating-card surface \u00e2\u20ac\u201d semi-transparent white + backdrop blur + rounded card with\n   a faint shadow. box-sizing keeps the 172px footprint. Fade-in on scroll-into-snapshot. *\/\n.mce-vs-salesrabbit .features-rail-aside{position:fixed;top:50%;left:max(8px,calc(50vw - 600px - 168px));width:172px;box-sizing:border-box;background:rgba(255,255,255,.72);border:1px solid rgba(255,255,255,.6);border-radius:18px;padding:12px 10px;box-shadow:0 14px 36px rgba(34,45,57,.08),0 2px 6px rgba(34,45,57,.04);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);z-index:80;opacity:0;pointer-events:none;transform:translateY(-50%) translateX(-12px);transition:opacity .3s,transform .35s}\n.mce-vs-salesrabbit .features-rail-aside.visible{opacity:1;pointer-events:auto;transform:translateY(-50%) translateX(0)}\n\n\/* Nav list \u00e2\u20ac\u201d vertical stack of section anchors. Active item gets a purple-lt pill. *\/\n.mce-vs-salesrabbit .features-nav-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}\n.mce-vs-salesrabbit .features-nav-list li{margin:0}\n.mce-vs-salesrabbit .features-nav-list a{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:11px;color:var(--soft);text-decoration:none;font-size:15.5px;font-weight:600;line-height:1.2;transition:all .2s;font-family:'Poppins',-apple-system,BlinkMacSystemFont,sans-serif}\n.mce-vs-salesrabbit .features-nav-list a:hover{color:var(--ink);background:var(--sec-bg)}\n.mce-vs-salesrabbit .features-nav-list a.active{color:var(--purple);background:var(--purple-lt);font-weight:700}\n.mce-vs-salesrabbit .features-nav-list .feat-nav-ico{width:36px;height:36px;border-radius:9px;background:rgba(34,45,57,.06);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--soft);transition:all .2s}\n.mce-vs-salesrabbit .features-nav-list .feat-nav-ico iconify-icon{width:19px;height:19px}\n.mce-vs-salesrabbit .features-nav-list a:hover .feat-nav-ico{color:var(--ink)}\n.mce-vs-salesrabbit .features-nav-list a.active .feat-nav-ico{background:var(--purple);color:#fff}\n\n\/* Action CTA stack beneath the nav. *\/\n.mce-vs-salesrabbit .rail-cta-divider{height:1px;background:linear-gradient(90deg,transparent 0%,var(--border) 30%,var(--border) 70%,transparent 100%);margin:18px 4px 14px}\n.mce-vs-salesrabbit .rail-ctas{display:flex;flex-direction:column;gap:8px;position:relative}\n.mce-vs-salesrabbit .rail-cta{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:11px;font-family:'Poppins',-apple-system,BlinkMacSystemFont,sans-serif;font-size:13.5px;font-weight:600;color:var(--ink);text-decoration:none;background:rgba(255,255,255,.75);border:1px solid var(--border);cursor:pointer;text-align:left;line-height:1.2;transition:all .18s;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);min-height:44px;box-sizing:border-box}\n.mce-vs-salesrabbit .rail-cta iconify-icon{font-size:16px;color:var(--purple);flex-shrink:0}\n.mce-vs-salesrabbit .rail-cta:hover{background:#fff;border-color:var(--purple-bd);color:var(--purple);transform:translateY(-1px);box-shadow:0 6px 14px rgba(101,18,190,.1)}\n\n\/* Primary (filled) variant. *\/\n.mce-vs-salesrabbit .rail-cta-primary{background:linear-gradient(135deg,var(--purple) 0%,var(--purple-deep) 100%);color:#fff;border-color:var(--purple-deep);box-shadow:0 6px 16px rgba(101,18,190,.25)}\n.mce-vs-salesrabbit .rail-cta-primary iconify-icon{color:#fff}\n.mce-vs-salesrabbit .rail-cta-primary:hover{background:linear-gradient(135deg,var(--purple-h) 0%,var(--purple-deep) 100%);color:#fff;border-color:var(--purple-deep)}\n\n\/* Ask-your-AI button + picker popover (positioned to the right of the button stack). *\/\n.mce-vs-salesrabbit .rail-cta-ai{font-family:'Poppins',-apple-system,BlinkMacSystemFont,sans-serif}\n.mce-vs-salesrabbit .rail-cta-ai[aria-expanded=\"true\"]{background:var(--purple-lt);border-color:var(--purple-bd);color:var(--purple)}\n.mce-vs-salesrabbit .rail-ai-picker{position:absolute;left:calc(100% + 10px);bottom:0;min-width:180px;background:#fff;border:1px solid var(--purple-bd);border-radius:14px;padding:6px;box-shadow:0 18px 40px rgba(101,18,190,.18);display:flex;flex-direction:column;gap:2px;z-index:90}\n.mce-vs-salesrabbit .rail-ai-picker[hidden]{display:none}\n.mce-vs-salesrabbit .rail-ai-opt{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:9px 12px;border-radius:9px;font-size:14px;font-weight:600;color:var(--ink);text-decoration:none;transition:all .15s}\n.mce-vs-salesrabbit .rail-ai-opt iconify-icon{font-size:14px;color:var(--soft);transition:transform .15s,color .15s}\n.mce-vs-salesrabbit .rail-ai-opt:hover{background:var(--purple-lt);color:var(--purple)}\n.mce-vs-salesrabbit .rail-ai-opt:hover iconify-icon{color:var(--purple);transform:translate(2px,-2px)}\n\n\/* Mobile nav-bar \u00e2\u20ac\u201d the rail's counterpart below the desktop breakpoint. A sticky\n   top bar that reuses .features-nav-list laid out horizontally (the base list is\n   column; this flips it to a scrollable row of pills). Same nav_items, one source. *\/\n.mce-vs-salesrabbit .features-nav-bar{display:none;position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--border);padding:14px 0}\n.mce-vs-salesrabbit .features-nav-bar .features-nav-list{flex-direction:row;justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap;gap:6px}\n.mce-vs-salesrabbit .features-nav-bar .features-nav-list a{flex-shrink:0;padding:9px 14px;font-size:14px;border-radius:100px}\n.mce-vs-salesrabbit .features-nav-bar .features-nav-list .feat-nav-ico{width:28px;height:28px}\n\n\/* Responsive \u00e2\u20ac\u201d the desktop rail lives in the left gutter; below 1380px the gutter\n   is too narrow to host it without overlapping content, so the rail hides and the\n   sticky mobile nav-bar takes over. Single crossover at 1380px \u00e2\u20ac\u201d no dead zone. *\/\n@media(max-width:1380px){\n  .mce-vs-salesrabbit .features-rail-aside{display:none}\n  .mce-vs-salesrabbit .features-nav-bar{display:block}\n}\n\n\n\/* ===== strip-checkmarks-3 ===== *\/\n\/* TRUST STRIP \u00e2\u20ac\u201d narrow horizontal band of 3 differentiator items, each prefixed with a\n   purple-circle check. Drops between hero and snapshot table. Reads as a quiet, structural\n   counterpart to the hero \u00e2\u20ac\u201d same brand color, much smaller visual footprint. *\/\n.mce-vs-salesrabbit .strip{background:#fff;border-bottom:1px solid var(--border);padding:11px 0}\n.mce-vs-salesrabbit .strip-row{display:grid;grid-auto-flow:column;grid-auto-columns:auto;align-items:stretch;justify-content:center;gap:0}\n\n\/* Per Pitfall #17: when an item wraps to 2 lines, align-items:flex-start keeps the check\n   pinned to the first line's cap height instead of drifting to the vertical center. *\/\n.mce-vs-salesrabbit .strip-item{display:inline-flex;align-items:center;gap:10px;font-size:14px;font-weight:500;color:var(--body);padding:6px 28px;line-height:1.3;text-align:left}\n.mce-vs-salesrabbit .strip-item+.strip-item{border-left:1px solid var(--border)}\n\n\/* The purple-circle check \u00e2\u20ac\u201d 22px circle, 11px SVG inside. White stroke for contrast. *\/\n.mce-vs-salesrabbit .scheck{width:22px;height:22px;border-radius:50%;background:var(--purple);flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;margin-top:1px}\n.mce-vs-salesrabbit .scheck svg{width:11px;height:11px;display:block}\n\n\/* RESPONSIVE \u00e2\u20ac\u201d stack to a column at the smallest breakpoint, swap the side divider for a\n   top divider so the visual rhythm continues to read as discrete items. *\/\n@media(max-width:640px){\n  .mce-vs-salesrabbit .strip-row{display:flex;flex-direction:column;gap:8px;align-items:stretch}\n  .mce-vs-salesrabbit .strip-item{padding:6px 0;align-items:flex-start}\n  .mce-vs-salesrabbit .strip-item .scheck{margin-top:3px}\n  .mce-vs-salesrabbit .strip-item+.strip-item{border-left:none;border-top:1px solid var(--border);padding-top:14px;margin-top:6px}\n}\n\n\n\/* ===== snapshot-table-grouped ===== *\/\n\/* SNAPSHOT TABLE *\/\n.mce-vs-salesrabbit .ctab-wrap{background:#fff;border:1px solid var(--border);border-radius:16px;overflow:hidden;box-shadow:var(--sh-lg)}\n.mce-vs-salesrabbit .ctab-head{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(0,1fr) minmax(0,1fr);background:#fff;color:var(--ink);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:5}\n\/* v4.1 Fix 5: snapshot table header\u00e2\u20ac\u201dcompacted from 108px to 88px, switched to column flex\n   layout to stack vendor logo + positioning subtitle. The subtitle restates the page's\n   thesis at the moment the reader is about to compare 13 rows of features. *\/\n.mce-vs-salesrabbit .ctab-h{padding:24px 24px 18px;font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--soft);display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:8px;min-height:88px}\n\/* v6.3: header content is TOP-aligned and the role sub-label sits in normal flow below the\n   logo \u00e2\u20ac\u201d so under live auto-translation a longer sub-label just grows the cell downward and\n   never collides with the logo, while \"Capability\" (also top-aligned) shares the logos' top\n   baseline. (v6.2 pinned the sub-label absolute, which overlapped the logo once German copy\n   wrapped to 2 lines.) *\/\n.mce-vs-salesrabbit .ctab-h-sub{margin-top:2px;text-align:center;font-size:11.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--soft);line-height:1.3}\n.mce-vs-salesrabbit .ctab-h.us .ctab-h-sub{color:var(--purple)}\n\/* v3.1: renamed from .ctab-h.cap to .ctab-h.cap-h to stop the standalone .cap class (used by capability cards in the Six Surfaces section) from leaking white-card border + scroll-reveal opacity onto the table header cell. *\/\n.mce-vs-salesrabbit .ctab-h.cap-h{font-size:20px;font-weight:700;color:var(--ink);text-transform:none;letter-spacing:-.015em;justify-content:center;align-items:flex-start;text-align:left;padding-left:28px}\n.mce-vs-salesrabbit .ctab-fncell{white-space:normal;display:inline}\n.mce-vs-salesrabbit .ctab-fncell sup{font-size:.85em;color:var(--purple);font-weight:700;margin-left:4px;line-height:0}\n.mce-vs-salesrabbit .ctab-h.them,.mce-vs-salesrabbit .ctab-h.us{border-left:1px solid var(--border);justify-content:center}\n.mce-vs-salesrabbit .ctab-h.them{color:var(--ink)}\n.mce-vs-salesrabbit .ctab-h.us{background:linear-gradient(180deg,#F8F4FF 0%,#F0EBFF 100%);color:var(--purple);position:relative}\n.mce-vs-salesrabbit .ctab-h.us::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:3px;background:var(--purple)}\n.mce-vs-salesrabbit .ctab-h-mark{display:inline-flex;align-items:center;flex-shrink:0}\n.mce-vs-salesrabbit .ctab-h-mark img{height:46px;width:auto;display:block}\n.mce-vs-salesrabbit .ctab-h-mark.us img{height:48px;width:auto}\n.mce-vs-salesrabbit .ctab-row{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(0,1fr) minmax(0,1fr);border-top:1px solid var(--border)}\n.mce-vs-salesrabbit .ctab-row:first-of-type{border-top:none}\n.mce-vs-salesrabbit .ctab-group{padding:20px 28px 14px;background:#FAFAFC;border-top:2px solid var(--purple-bd);font-size:12.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--purple);display:flex;align-items:center;gap:10px}\n\/* v6.14: hyphen replaced by per-group iconify-icon (inline in the markup). *\/\n.mce-vs-salesrabbit .ctab-group iconify-icon{font-size:18px;color:var(--purple);flex-shrink:0}\n.mce-vs-salesrabbit .ctab-group:first-of-type{border-top:none}\n.mce-vs-salesrabbit .ctab-group + .ctab-row{border-top:none}\n.mce-vs-salesrabbit .ctab-cell{padding:14px 20px;font-size:14px;font-weight:300;color:var(--body);line-height:1.45;display:flex;align-items:center;justify-content:center;text-align:center;flex-wrap:wrap;gap:6px}\n.mce-vs-salesrabbit .ctab-cell.dim{font-weight:600;color:var(--ink);font-size:14.5px;justify-content:flex-start;text-align:left}\n.mce-vs-salesrabbit .ctab-cell.them{border-left:1px solid var(--border)}\n.mce-vs-salesrabbit .ctab-cell.us{border-left:1px solid var(--border);background:linear-gradient(180deg,rgba(101,18,190,.045),rgba(101,18,190,.025));color:var(--ink);font-weight:600}\n.mce-vs-salesrabbit .ctab-note{margin-top:18px;font-size:13.5px;font-weight:300;color:var(--body);line-height:1.65;text-align:left;max-width:none;padding:0 4px}\n.mce-vs-salesrabbit .ctab-note sup{color:var(--purple);font-weight:700;margin-right:2px}\n.mce-vs-salesrabbit .ctab-cell.them sup,.mce-vs-salesrabbit .ctab-cell.us sup{color:var(--purple);font-weight:700;font-size:.85em;margin-left:4px}\n.mce-vs-salesrabbit .ctab-fnlink{color:var(--purple);text-decoration:none;font-weight:700}\n.mce-vs-salesrabbit .ctab-fnlink:hover{text-decoration:underline}\n\n.mce-vs-salesrabbit .mark-no{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:#FEE2E2;color:#DC2626;border:1px solid #FECACA;flex-shrink:0}\n.mce-vs-salesrabbit .mark-yes{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--purple-lt);color:var(--purple);border:1px solid var(--purple-bd);flex-shrink:0}\n\n\/* RESPONSIVE *\/\n@media(max-width:1000px){\n  .mce-vs-salesrabbit .ctab-head,.mce-vs-salesrabbit .ctab-row{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr)}\n  .mce-vs-salesrabbit .ctab-cell{padding:16px 14px;font-size:13px;align-items:flex-start}\n  .mce-vs-salesrabbit .ctab-h{padding:18px 14px;font-size:12px;min-height:80px}\n  .mce-vs-salesrabbit .ctab-h-mark img{height:34px}\n  .mce-vs-salesrabbit .ctab-h-mark.us img{height:34px}\n  .mce-vs-salesrabbit .ctab-cell.dim{font-size:13.5px}\n}\n@media(max-width:640px){\n  .mce-vs-salesrabbit .ctab-head,.mce-vs-salesrabbit .ctab-row{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr)}\n  .mce-vs-salesrabbit .ctab-cell{padding:14px 10px;font-size:12px;align-items:flex-start;overflow-wrap:break-word;hyphens:auto}\n  .mce-vs-salesrabbit .ctab-cell.dim{align-items:flex-start}\n  .mce-vs-salesrabbit .ctab-h{padding:14px 8px;font-size:10.5px;gap:8px}\n  .mce-vs-salesrabbit .ctab-cell.dim{font-size:12.5px}\n  .mce-vs-salesrabbit .ctab-h-mark img{height:24px}\n  .mce-vs-salesrabbit .ctab-h-mark.us img{height:22px}\n}\n\n\n\/* ===== model-card-trio ===== *\/\n\/* model-card-trio \u00e2\u20ac\u201d three model cards contrasting Mapsly with a competitor citation.\n   Extracted verbatim from page-vs-portatour-v4.html. Scope to the page wrapper via .mce-vs-salesrabbit.\n   Body uses flex:1 so the divider sits at the same Y across all three cards regardless of\n   body length. .model-card-them sticks to the bottom via margin-top:auto + min-height. *\/\n\n.mce-vs-salesrabbit .model-sec{padding:60px 0}\n.mce-vs-salesrabbit .model-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:48px}\n.mce-vs-salesrabbit .model-card{display:flex;flex-direction:column;padding:36px 32px 32px;background:#fff;border:1px solid var(--purple-bd);border-radius:20px;box-shadow:0 8px 26px rgba(101,18,190,.07);position:relative;overflow:hidden;transition:transform .25s,box-shadow .25s}\n.mce-vs-salesrabbit .model-card:hover{transform:translateY(-3px);box-shadow:0 14px 36px rgba(101,18,190,.12)}\n.mce-vs-salesrabbit .model-card::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--purple) 0%,var(--purple-mid) 50%,var(--pink) 100%)}\n\n\/* Icon pill \u00e2\u20ac\u201d light purple-lt background + purple icon, matching the capability-card icon style. *\/\n.mce-vs-salesrabbit .model-card-num{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:13px;background:var(--purple-lt);border:1px solid var(--purple-bd);color:var(--purple);margin-bottom:20px}\n.mce-vs-salesrabbit .model-card-num iconify-icon{font-size:26px;color:var(--purple)}\n\n.mce-vs-salesrabbit .model-card-title{font-size:20px;font-weight:700;color:var(--ink);line-height:1.2;letter-spacing:-.018em;margin:0 0 14px}\n\n\/* Body uses flex:1 so it grows to fill space above the divider \u00e2\u20ac\u201d divider aligns across all 3 cards. *\/\n.mce-vs-salesrabbit .model-card-body{font-size:15px;font-weight:300;color:var(--body);line-height:1.65;margin:0 0 24px;flex:1}\n.mce-vs-salesrabbit .model-card-divider{height:1px;background:linear-gradient(90deg,transparent 0%,var(--border) 30%,var(--border) 70%,transparent 100%);margin-bottom:20px}\n\n\/* Competitor citation block \u00e2\u20ac\u201d bottom-anchored via margin-top:auto + min-height. *\/\n.mce-vs-salesrabbit .model-card-them{display:flex;flex-direction:column;gap:10px;margin-top:auto;min-height:220px}\n.mce-vs-salesrabbit .model-card-them-h{display:flex;align-items:center;margin-bottom:4px}\n.mce-vs-salesrabbit .model-card-them-h img{height:24px;width:auto;opacity:.85}\n.mce-vs-salesrabbit .model-card-them-body{font-size:13.5px;color:var(--soft);line-height:1.55;margin:0;font-weight:400}\n.mce-vs-salesrabbit .model-card-them-body em{font-style:italic;color:var(--body)}\n.mce-vs-salesrabbit .model-card-them-src{display:inline-flex;align-items:center;gap:5px;font-size:13px;font-weight:600;color:var(--purple);text-decoration:none;letter-spacing:.04em;text-transform:uppercase;align-self:flex-start;border-bottom:1px solid var(--purple-bd);padding-bottom:2px;transition:color .18s,border-color .18s;margin-top:auto}\n.mce-vs-salesrabbit .model-card-them-src:hover{color:var(--purple-h);border-bottom-color:var(--purple)}\n.mce-vs-salesrabbit .model-card-them-src iconify-icon{transition:transform .18s}\n.mce-vs-salesrabbit .model-card-them-src:hover iconify-icon{transform:translate(2px,-2px)}\n\n@media(max-width:1024px){\n  .mce-vs-salesrabbit .model-grid{grid-template-columns:1fr;max-width:600px;margin-left:auto;margin-right:auto}\n}\n\n\n\/* ===== platform-layer-tiles ===== *\/\n\/* platform-layer-tiles \u00e2\u20ac\u201d portatour variant of the .cap\/.cap-grid tile pattern.\n   Architectural-reframe styling: purple-lt backgrounds with no border outline (vs. the\n   routeiq capability-grid-6 variant which uses white-with-purple-border).\n   Scope to the page wrapper via .mce-vs-salesrabbit.\n\n   **Prefix collision warning:** routeiq's `capability-grid-6` block also targets `.cap-grid`\n   and `.cap`. If both are present on the same page (rare), whichever block's styles.css is\n   loaded last wins. block.json's `alternative_blocks: [\"capability-grid-6\"]` flags this. *\/\n\n.mce-vs-salesrabbit .cap-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}\n.mce-vs-salesrabbit .cap{background:var(--purple-lt);border:none;border-radius:12px;padding:24px 22px;transition:all .22s;display:flex;flex-direction:column}\n.mce-vs-salesrabbit .cap-grid .cap:hover{box-shadow:var(--sh-lg);transform:translateY(-3px)}\n.mce-vs-salesrabbit .cap .ico{width:46px;height:46px;border-radius:11px;background:#fff;border:1px solid var(--purple-bd);display:flex;align-items:center;justify-content:center;margin-bottom:14px}\n.mce-vs-salesrabbit .cap h3{font-size:18px;font-weight:700;color:var(--ink);margin-bottom:8px;letter-spacing:-.015em}\n.mce-vs-salesrabbit .cap p{font-size:14px;font-weight:300;color:var(--body);line-height:1.6;margin:0 0 14px;flex:1}\n.mce-vs-salesrabbit .cap .stat{display:inline-flex;align-items:baseline;gap:6px;padding:7px 14px;border-radius:100px;background:#fff;color:var(--purple);font-size:13.5px;font-weight:700;letter-spacing:.02em;align-self:flex-start;border:1px solid var(--purple-bd)}\n.mce-vs-salesrabbit .cap .stat .n{font-size:14px;font-weight:900}\n\n\/* Reveal animation hook \u00e2\u20ac\u201d works with the shared reveal.js stagger. *\/\n.mce-vs-salesrabbit .cap.anim{opacity:0;transform:translateY(24px);transition:opacity .7s cubic-bezier(.22,.61,.36,1),transform .7s cubic-bezier(.22,.61,.36,1)}\n.mce-vs-salesrabbit .cap.on{opacity:1;transform:translateY(0)}\n\n@media(max-width:1000px){\n  .mce-vs-salesrabbit .cap-grid{grid-template-columns:1fr 1fr}\n}\n@media(max-width:640px){\n  .mce-vs-salesrabbit .cap-grid{grid-template-columns:1fr}\n}\n\n\n\/* ===== tech-callout-algorithm ===== *\/\n\/* TECH CALLOUT \u00e2\u20ac\u201d purple-tinted gradient card. Used as an inline sub-section of a deep-dive\n   card (under the first routing dd) or standalone. Body = headline column + 3-up benefits. *\/\n.mce-vs-salesrabbit .dd-tech{display:flex;flex-direction:column;gap:24px;padding:30px 32px;border-radius:16px;background:linear-gradient(165deg,#F8F4FF 0%,#FFFFFF 100%);border:1px solid var(--purple-bd)}\n\n\/* HEADER ROW \u00e2\u20ac\u201d lead icon pill + headline\/body. The icon pill is purple-filled with a\n   shadow \u00e2\u20ac\u201d the icon asset itself should be light-on-dark to read. *\/\n.mce-vs-salesrabbit .dd-tech-head{display:flex;gap:14px;align-items:flex-start}\n.mce-vs-salesrabbit .dd-tech-ico{width:48px;height:48px;border-radius:11px;background:var(--purple);display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 6px 14px rgba(101,18,190,.22);margin-top:1px}\n.mce-vs-salesrabbit .dd-tech-ico img{width:32px;height:32px;display:block}\n\n\/* HEADLINE TEXT \u00e2\u20ac\u201d H4 with the supporting body paragraph underneath. *\/\n.mce-vs-salesrabbit .dd-tech-headline h4{font-size:clamp(20px,2vw,24px);font-weight:700;color:var(--ink);letter-spacing:-.015em;line-height:1.2;margin:0 0 6px;font-family:'Poppins',-apple-system,BlinkMacSystemFont,sans-serif;text-wrap:balance}\n.mce-vs-salesrabbit .dd-tech-headline p,.mce-vs-salesrabbit .dd-tech-body{font-size:15px;font-weight:300;color:var(--body);line-height:1.6;margin:0;max-width:560px;text-wrap:pretty}\n\n\/* BENEFITS GRID \u00e2\u20ac\u201d 3-up at desktop, 1 col at mobile. Per Pitfall #11 the icons here use\n   <img> (not iconify-icon) because the visible glyph size matters and iconify auto-fit\n   produces inconsistent optical weight. *\/\n.mce-vs-salesrabbit .dd-tech-benefits{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}\n.mce-vs-salesrabbit .dd-tech-benefit{display:flex;align-items:center;gap:16px;padding:22px 24px;border-radius:12px;background:#fff;border:1px solid var(--border)}\n.mce-vs-salesrabbit .dd-tech-benefit-ico{width:56px;height:56px;border-radius:13px;background:var(--purple-lt);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border:1px solid var(--purple-bd)}\n.mce-vs-salesrabbit .dd-tech-benefit-ico img{width:38px;height:38px;display:block}\n.mce-vs-salesrabbit .dd-tech-benefit-text{display:flex;flex-direction:column;gap:3px;min-width:0}\n.mce-vs-salesrabbit .dd-tech-benefit-text strong{font-size:15px;font-weight:700;color:var(--ink);line-height:1.2;font-family:'Poppins',-apple-system,BlinkMacSystemFont,sans-serif}\n.mce-vs-salesrabbit .dd-tech-benefit-text span{font-size:13px;font-weight:300;color:var(--body);line-height:1.4}\n\n\/* RESPONSIVE \u00e2\u20ac\u201d at <=640 the head row stacks (icon above headline) and the benefits\n   grid drops to 1 col. *\/\n@media(max-width:640px){\n  .mce-vs-salesrabbit .dd-tech{padding:24px 22px 28px;gap:18px}\n  .mce-vs-salesrabbit .dd-tech-head{flex-direction:column;align-items:flex-start;gap:14px}\n  .mce-vs-salesrabbit .dd-tech-benefits{grid-template-columns:1fr;gap:10px}\n}\n\n\n\/* ===== customer-stories-3 ===== *\/\n\/* customer-stories-3 \u00e2\u20ac\u201d three quote cards with avatar + case-study link.\n   Extracted from page-vs-portatour-v4.html (canonical). Scope via .mce-vs-salesrabbit. *\/\n\n.mce-vs-salesrabbit .quote-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;max-width:1200px;margin:0 auto}\n.mce-vs-salesrabbit .quote-card{background:#fff;border:1px solid var(--border);border-radius:16px;padding:36px 32px 30px;box-shadow:var(--sh-lg);position:relative;display:flex;flex-direction:column;height:100%}\n.mce-vs-salesrabbit .quote-card::before{content:'\\201C';position:absolute;top:10px;left:24px;font-family:'Poppins',-apple-system,BlinkMacSystemFont,sans-serif;font-size:88px;line-height:1;color:var(--purple-lt);font-weight:900;pointer-events:none}\n.mce-vs-salesrabbit .quote-body{font-size:17px;font-weight:500;color:var(--ink);line-height:1.55;letter-spacing:-.005em;position:relative;z-index:1;font-style:normal;flex:1}\n.mce-vs-salesrabbit .quote-body strong{color:var(--purple);font-weight:700}\n.mce-vs-salesrabbit .quote-attr{margin-top:24px;display:flex;align-items:center;gap:14px;padding-top:20px;border-top:1px solid var(--border)}\n.mce-vs-salesrabbit .quote-attr-text{flex:1;min-width:0}\n.mce-vs-salesrabbit .quote-avatar{width:54px;height:54px;border-radius:50%;background:linear-gradient(135deg,var(--purple),var(--purple-deep));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:18px;letter-spacing:-.02em;flex-shrink:0}\n.mce-vs-salesrabbit .quote-name{font-weight:700;color:var(--ink);font-size:15px;line-height:1.3}\n.mce-vs-salesrabbit .quote-meta{font-size:13px;color:var(--soft);line-height:1.5;font-weight:500;margin-top:2px}\n.mce-vs-salesrabbit .quote-link{display:inline-flex;align-items:center;gap:6px;margin-top:16px;font-size:13.5px;font-weight:600;color:var(--purple);text-decoration:none;border-bottom:1px solid var(--purple-bd);padding-bottom:2px;align-self:flex-start;transition:all .18s ease}\n.mce-vs-salesrabbit .quote-link:hover{color:var(--purple-h);border-bottom-color:var(--purple);transform:translateX(2px)}\n.mce-vs-salesrabbit .quote-link .btn-arrow{transition:transform .18s ease}\n.mce-vs-salesrabbit .quote-link:hover .btn-arrow{transform:translateX(3px)}\n\n\/* Reveal animation hook \u00e2\u20ac\u201d works with the shared reveal.js IIFE. *\/\n.mce-vs-salesrabbit .quote-card.anim{opacity:0;transform:translateY(12px)}\n.mce-vs-salesrabbit .quote-card.on{opacity:1;transform:translateY(0)}\n\n@media(max-width:640px){\n  .mce-vs-salesrabbit .quote-card{padding:28px 24px}\n  .mce-vs-salesrabbit .quote-body{font-size:16px}\n  .mce-vs-salesrabbit .quote-grid{grid-template-columns:1fr;gap:18px;max-width:560px}\n}\n\n\n\/* ===== roi-tiles ===== *\/\n\/* roi-tiles \u00e2\u20ac\u201d REPORTED band of the two-band ROI section. Bare on the page background,\n   three light metric tiles. Pair with roi-calculator-twoband for the projected card.\n   Extracted from page-vs-portatour-v4.html (lines ~502, 505, 507-513, 530-535 + responsive). *\/\n\n\/* Band shell \u00e2\u20ac\u201d no card surface for the \"reported\" view (the purple-tinted card lives on roi-calc). *\/\n.mce-vs-salesrabbit .roi-band{max-width:944px;margin:0 auto}\n.mce-vs-salesrabbit .roi-band-h{display:flex;align-items:baseline;justify-content:flex-start;flex-wrap:wrap;gap:16px;margin-bottom:18px;padding-bottom:14px;border-bottom:1px dashed rgba(101,18,190,.18)}\n.mce-vs-salesrabbit .roi-band:not(.roi-calc) .roi-band-h{border-bottom-color:var(--border);margin-bottom:20px}\n.mce-vs-salesrabbit .roi-band-tag{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--soft);padding:6px 12px;border-radius:100px;background:rgba(133,133,160,.1);border:1px solid var(--border);flex-shrink:0}\n.mce-vs-salesrabbit .roi-band-tag iconify-icon{font-size:15px}\n.mce-vs-salesrabbit .roi-band-note{font-size:13.5px;font-weight:400;color:var(--soft);line-height:1.55;flex:1;min-width:200px;text-wrap:pretty}\n\n\/* Metric grid + tiles \u00e2\u20ac\u201d light, consistent with the rest of the page. *\/\n.mce-vs-salesrabbit .metrics-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:944px;margin:0 auto}\n.mce-vs-salesrabbit .metric{padding:36px 28px 32px;border:1px solid var(--border);border-radius:14px;background:#fff;text-align:center;transition:all .22s}\n.mce-vs-salesrabbit .metric:hover{border-color:var(--purple-bd);box-shadow:var(--sh-lg);transform:translateY(-3px)}\n.mce-vs-salesrabbit .metric .num{font-size:64px;font-weight:800;line-height:1;letter-spacing:-.03em;color:var(--purple);margin-bottom:14px;font-family:'Poppins',-apple-system,BlinkMacSystemFont,sans-serif}\n.mce-vs-salesrabbit .metric .label{color:var(--ink);font-size:15px;line-height:1.45;font-weight:500}\n.mce-vs-salesrabbit .metric .label strong{display:block;font-weight:700;font-size:16px;margin-bottom:4px;color:var(--ink)}\n.mce-vs-salesrabbit .metric .label span{display:block;color:var(--soft);font-weight:400;font-size:13px;margin-top:4px}\n\n\/* Reveal animation hooks \u00e2\u20ac\u201d works with the shared reveal.js IIFE \/ per-page stagger. *\/\n.mce-vs-salesrabbit .metric{transition:opacity .7s cubic-bezier(.22,.61,.36,1),transform .7s cubic-bezier(.22,.61,.36,1),border-color .22s,box-shadow .22s}\n.mce-vs-salesrabbit .metric.anim{opacity:0;transform:translateY(24px)}\n.mce-vs-salesrabbit .metric.on{opacity:1;transform:translateY(0)}\n\n\/* Responsive \u00e2\u20ac\u201d 2-col with centered-last at tablet, 1-col at mobile. *\/\n@media(max-width:1000px){\n  .mce-vs-salesrabbit .metrics-grid{grid-template-columns:1fr 1fr}\n  .mce-vs-salesrabbit .metric:last-child{grid-column:1\/-1;max-width:50%;margin:0 auto}\n}\n@media(max-width:640px){\n  .mce-vs-salesrabbit .metrics-grid{grid-template-columns:1fr}\n  .mce-vs-salesrabbit .metric:last-child{max-width:100%;grid-column:auto;margin:0}\n  .mce-vs-salesrabbit .metric .num{font-size:54px}\n}\n\n\n\/* ===== roi-calculator-twoband ===== *\/\n\/* roi-calculator-twoband \u00e2\u20ac\u201d PROJECTED band of the two-band ROI section. Wrapped in a\n   purple-tinted contained card with 3 calculator tiles + a CTA to the live calculator.\n   Pair with roi-tiles for the reported band above. Shares the `roi-` selector prefix\n   with roi-tiles but uses distinct .roi-tile\/.roi-cta selectors (no collisions).\n   Extracted from page-vs-portatour-v4.html (lines ~506-529 + responsive + reveal). *\/\n\n\/* Contained-card surface \u00e2\u20ac\u201d only on the projected variant. *\/\n.mce-vs-salesrabbit .roi-calc{max-width:944px;margin:48px auto 0;padding:36px 40px 32px;background:linear-gradient(170deg,#FAF6FF 0%,#F0E8FF 100%);border:1px solid var(--purple-bd);border-radius:20px;box-shadow:0 12px 40px rgba(101,18,190,.06)}\n\n\/* Header band \u00e2\u20ac\u201d reuses .roi-band-h from roi-tiles; here we override the divider color\n   to the calculator-deeper purple. Tag pill flips to white surface + purple text. *\/\n.mce-vs-salesrabbit .roi-calc .roi-band-h{display:flex;align-items:baseline;justify-content:flex-start;flex-wrap:wrap;gap:16px;margin-bottom:18px;padding-bottom:14px;border-bottom:1px dashed rgba(101,18,190,.28)}\n.mce-vs-salesrabbit .roi-calc .roi-band-tag{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;padding:6px 12px;border-radius:100px;flex-shrink:0}\n.mce-vs-salesrabbit .roi-calc .roi-band-tag iconify-icon{font-size:15px}\n.mce-vs-salesrabbit .roi-band-tag-calc{color:var(--purple);background:#fff;border:1px solid var(--purple-bd);box-shadow:0 1px 3px rgba(101,18,190,.08)}\n.mce-vs-salesrabbit .roi-calc .roi-band-note{font-size:13.5px;font-weight:400;color:var(--soft);line-height:1.55;flex:1;min-width:200px;text-wrap:pretty}\n\n\/* Tile grid + tiles \u00e2\u20ac\u201d purple-tinted gradient with a hover lift. *\/\n.mce-vs-salesrabbit .roi-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:944px;margin:0 auto}\n.mce-vs-salesrabbit .roi-tile{background:linear-gradient(165deg,#F8F4FF 0%,#EFE6FF 100%);border:1px solid var(--purple-bd);border-radius:16px;padding:28px 26px 26px;display:flex;flex-direction:column;transition:all .22s;position:relative;overflow:hidden}\n.mce-vs-salesrabbit .roi-tile:hover{border-color:var(--purple);box-shadow:0 12px 36px rgba(101,18,190,.15);transform:translateY(-3px)}\n\n\/* Accent tile \u00e2\u20ac\u201d purple-fill + white type for the headline-win figure (third tile). *\/\n.mce-vs-salesrabbit .roi-tile-accent{background:linear-gradient(165deg,var(--purple) 0%,var(--purple-deep) 100%);border:1px solid var(--purple-deep);color:#fff}\n\n.mce-vs-salesrabbit .roi-tile-ico{width:46px;height:46px;border-radius:12px;background:rgba(255,255,255,.6);border:1px solid rgba(101,18,190,.2);display:flex;align-items:center;justify-content:center;margin-bottom:18px;color:var(--purple)}\n.mce-vs-salesrabbit .roi-tile-ico iconify-icon{font-size:24px}\n.mce-vs-salesrabbit .roi-tile-accent .roi-tile-ico{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.28);color:#fff}\n\n.mce-vs-salesrabbit .roi-tile-h{font-size:12.5px;font-weight:700;color:var(--purple-deep);letter-spacing:.08em;margin-bottom:10px;text-transform:uppercase}\n.mce-vs-salesrabbit .roi-tile-accent .roi-tile-h{color:rgba(255,255,255,.92)}\n\n.mce-vs-salesrabbit .roi-tile-num{font-size:52px;font-weight:800;letter-spacing:-.03em;line-height:1.05;color:var(--purple);margin-bottom:12px}\n.mce-vs-salesrabbit .roi-tile-accent .roi-tile-num{color:#fff}\n\n.mce-vs-salesrabbit .roi-tile-sub{font-size:13.5px;font-weight:400;color:var(--soft);line-height:1.5;text-wrap:pretty}\n.mce-vs-salesrabbit .roi-tile-accent .roi-tile-sub{color:rgba(255,255,255,.78)}\n\n\/* CTA row beneath the tile grid. *\/\n.mce-vs-salesrabbit .roi-cta{display:flex;align-items:center;justify-content:center;gap:18px;flex-wrap:wrap;margin:30px auto 0;max-width:980px}\n.mce-vs-salesrabbit .roi-cta-label{font-size:15px;font-weight:500;color:var(--ink)}\n\n\/* Reveal animation hooks \u00e2\u20ac\u201d works with the shared reveal.js IIFE \/ per-page stagger. *\/\n.mce-vs-salesrabbit .roi-tile{transition:opacity .8s cubic-bezier(.22,.61,.36,1),transform .8s cubic-bezier(.22,.61,.36,1),border-color .22s,box-shadow .22s}\n.mce-vs-salesrabbit .roi-tile.anim{opacity:0;transform:translateY(32px)}\n.mce-vs-salesrabbit .roi-tile.on{opacity:1;transform:translateY(0)}\n\n\/* Responsive \u00e2\u20ac\u201d single column at mobile, smaller numbers, stacked CTA. *\/\n@media(max-width:640px){\n  .mce-vs-salesrabbit .roi-tiles{grid-template-columns:1fr;gap:14px;max-width:520px}\n  .mce-vs-salesrabbit .roi-tile-num{font-size:38px}\n  .mce-vs-salesrabbit .roi-cta{flex-direction:column;gap:12px}\n}\n\n\n\/* ===== disclaimer-band ===== *\/\n\/* disclaimer-band \u00e2\u20ac\u201d thin info strip after the ROI section.\n   Extracted from page-vs-portatour-v4.html (canonical). Scope via .mce-vs-salesrabbit.\n\n   Note: the inner row uses .faq-disclaimer (cross-prefix) \u00e2\u20ac\u201d that class\n   originated in the FAQ block and was reused here. We carry the rule on this\n   block so the band renders standalone; the FAQ block carries it too, so\n   loading both is idempotent. *\/\n\n.mce-vs-salesrabbit .disclaimer-sec{padding:36px 0 32px;background:#fff}\n\n.mce-vs-salesrabbit .faq-disclaimer{display:flex;align-items:center;gap:12px;max-width:1280px;margin:0 auto 24px;padding:11px 18px;background:#fff;border:1px solid var(--border);border-radius:12px;font-size:13.5px;line-height:1.55;color:var(--body)}\n.mce-vs-salesrabbit .faq-disclaimer iconify-icon{flex-shrink:0;font-size:20px;color:var(--purple);margin-top:1px}\n.mce-vs-salesrabbit .faq-disclaimer a{color:var(--purple);font-weight:600;text-decoration:underline}\n.mce-vs-salesrabbit .faq-disclaimer span{text-wrap:pretty}\n\n\n\/* ===== faq-accordion ===== *\/\n\/* faq-accordion \u00e2\u20ac\u201d sidebar heading + collapsible Q\/A items.\n   Extracted from page-vs-portatour-v4.html (canonical). Scope via .mce-vs-salesrabbit.\n\n   IMPORTANT: the !important rules on .faq-q and .faq-tog are intentional \u00e2\u20ac\u201d\n   they override Elementor's default button styling.\n   See pitfalls.md Pitfall #4. *\/\n\n.mce-vs-salesrabbit .faq-wrap{display:grid;grid-template-columns:280px 1fr;gap:64px;align-items:start;max-width:1280px;margin:0 auto}\n.mce-vs-salesrabbit .faq-hed h2{font-size:28px;font-weight:700;letter-spacing:-.02em;margin:8px 0 12px;line-height:1.15;color:var(--ink)}\n.mce-vs-salesrabbit .faq-hed p{font-size:15px;color:var(--body);line-height:1.6}\n.mce-vs-salesrabbit .faq-hed a{color:var(--purple);text-decoration:none;font-weight:600}\n.mce-vs-salesrabbit .faq-hed a:hover{text-decoration:underline}\n.mce-vs-salesrabbit .faq-list{border-top:1px solid var(--border)}\n.mce-vs-salesrabbit .faq-item{border-bottom:1px solid var(--border)}\n.mce-vs-salesrabbit .faq-q{width:100% !important;background:none !important;border:none !important;cursor:pointer;padding:18px 0 !important;display:flex !important;align-items:center;justify-content:space-between;gap:20px;font-family:'Poppins',-apple-system,BlinkMacSystemFont,sans-serif !important;font-size:17px !important;font-weight:600 !important;color:var(--ink) !important;text-align:left;transition:color .15s}\n.mce-vs-salesrabbit .faq-q:hover{color:var(--purple) !important}\n.mce-vs-salesrabbit .faq-tog{width:30px !important;height:30px !important;border-radius:50% !important;flex-shrink:0;border:1.5px solid var(--border) !important;display:flex !important;align-items:center;justify-content:center;font-size:17px !important;color:var(--muted);transition:all .22s;background:transparent !important}\n.mce-vs-salesrabbit .faq-item.open .faq-tog{background:var(--purple) !important;border-color:var(--purple) !important;color:#fff !important;transform:rotate(45deg)}\n.mce-vs-salesrabbit .faq-a{overflow:hidden;max-height:0;font-size:15.5px !important;font-weight:400 !important;color:var(--body) !important;line-height:1.65 !important;transition:max-height .35s ease,padding .3s ease}\n.mce-vs-salesrabbit .faq-item.open .faq-a{max-height:600px;padding-bottom:20px !important}\n.mce-vs-salesrabbit .faq-a strong{color:var(--ink)}\n.mce-vs-salesrabbit .faq-a a{color:var(--purple);text-decoration:none;font-weight:600}\n\n\/* Reveal animation hook \u00e2\u20ac\u201d works with the shared reveal.js IIFE. *\/\n.mce-vs-salesrabbit .faq-item.anim{opacity:0;transform:translateY(12px)}\n.mce-vs-salesrabbit .faq-item.on{opacity:1;transform:translateY(0)}\n\n@media(max-width:960px){\n  .mce-vs-salesrabbit .faq-wrap{grid-template-columns:1fr;gap:32px}\n}\n\n\n\/* ===== footnotes-list ===== *\/\n\/* footnotes-list \u00e2\u20ac\u201d numbered <ol> with id='fn-N' anchors.\n   Extracted verbatim from page-vs-portatour-v4.html. Scope to the page wrapper via .mce-vs-salesrabbit.\n   Snapshot-table cells deep-link here via <sup><a href='#fn-N'>N<\/a><\/sup> markers \u00e2\u20ac\u201d the\n   matching sup styling is included so the markers render correctly inside table cells. *\/\n\n.mce-vs-salesrabbit .footnotes-sec{background:#FAFAFC;border-top:1px solid var(--border)}\n.mce-vs-salesrabbit .footnotes-h{margin-bottom:20px}\n.mce-vs-salesrabbit .footnotes-h h3{font-size:18px;font-weight:700;color:var(--ink);margin:0;letter-spacing:-.015em}\n\/* Absence-of-evidence note \u00e2\u20ac\u201d the dated cover for every \u00e2\u0153\u2014 that stands for an undocumented capability. *\/\n.mce-vs-salesrabbit .footnotes-note{font-size:14px;line-height:1.65;color:var(--body);margin:0 0 18px;max-width:900px}\n.mce-vs-salesrabbit .footnotes-list{padding-left:20px;margin:0;display:flex;flex-direction:column;gap:10px;list-style:decimal;color:var(--purple)}\n.mce-vs-salesrabbit .footnotes-list li{font-size:14px;line-height:1.65;color:var(--body);padding-left:6px}\n.mce-vs-salesrabbit .footnotes-list li strong{color:var(--ink);font-weight:700}\n.mce-vs-salesrabbit .footnotes-list li em{font-style:italic}\n.mce-vs-salesrabbit .footnotes-list li a{color:var(--soft);text-decoration:underline;font-weight:500;word-break:break-word}\n.mce-vs-salesrabbit .footnotes-list li a:hover{color:var(--purple)}\n\n\/* Sup marker styling \u00e2\u20ac\u201d used inside snapshot-table cells (.ctab-cell, .ctab-fncell) that\n   target this list. The marker is a small purple superscript anchor pointing at #fn-N. *\/\n.mce-vs-salesrabbit .ctab-fncell sup{font-size:.85em;color:var(--purple);font-weight:700;margin-left:4px;line-height:0}\n.mce-vs-salesrabbit .ctab-cell.them sup,\n.mce-vs-salesrabbit .ctab-cell.us sup{color:var(--purple);font-weight:700;font-size:.85em;margin-left:4px}\n.mce-vs-salesrabbit .ctab-fnlink{color:var(--purple);text-decoration:none;font-weight:700}\n.mce-vs-salesrabbit .ctab-fnlink:hover{text-decoration:underline}\n\n\/* Reveal animation hook \u00e2\u20ac\u201d works with the shared reveal.js stagger on .footnotes-list children. *\/\n.mce-vs-salesrabbit .footnotes-list li.anim{opacity:0;transform:translateY(32px);transition:opacity .8s cubic-bezier(.22,.61,.36,1),transform .8s cubic-bezier(.22,.61,.36,1)}\n.mce-vs-salesrabbit .footnotes-list li.on{opacity:1;transform:translateY(0)}\n\n\n\/* ===== _build ===== *\/\n\/* ===== page-overrides (vs-salesrabbit) =====\n   The SalesRabbit logo asset is a full icon+wordmark lockup (salesrabbit-logo.webp),\n   so it renders as a single <img> everywhere (hero pill, snapshot header,\n   model-card citations) \u2014 no companion text span. Do not recolor the competitor\n   logo. Plus trust-strip sizing so 3 items hold one line at desktop and stack\n   cleanly below 1100px. *\/\n\n\/* Hero brand pill: lockup optically matched to the Mapsly mark *\/\n.mce-vs-salesrabbit .hero-brand img.comp-mark{height:58px}\n@media(max-width:640px){\n  .mce-vs-salesrabbit .hero-brand img.comp-mark{height:38px}\n}\n\n\/* Snapshot table header: the wide lockup runs shorter than a square mark *\/\n.mce-vs-salesrabbit .ctab-h-mark img.comp-mark{height:50px}\n@media(max-width:1000px){\n  .mce-vs-salesrabbit .ctab-h-mark img.comp-mark{height:24px}\n}\n@media(max-width:640px){\n  .mce-vs-salesrabbit .ctab-h-mark img.comp-mark{height:17px}\n}\n\n\/* Model-card citations: lockup alone *\/\n.mce-vs-salesrabbit .model-card-them-h{display:flex;align-items:center}\n.mce-vs-salesrabbit .model-card-them-h img{height:22px}\n\n\/* Trust strip: tighter padding so all 3 items fit one line at desktop widths;\n   below 1100px stack as centered rows instead of an uneven 2+1 wrap *\/\n.mce-vs-salesrabbit .strip-item{padding:6px 20px}\n@media(max-width:1100px){\n  .mce-vs-salesrabbit .strip-row{display:flex;flex-direction:column;gap:8px;align-items:center}\n  .mce-vs-salesrabbit .strip-item{padding:4px 0}\n  .mce-vs-salesrabbit .strip-item+.strip-item{border-left:none}\n}\n\n.mce-vs-salesrabbit .ctab-cell .mk-cite{position:relative}.mce-vs-salesrabbit .ctab-cell .mk-cite>sup{position:absolute;left:100%;top:-2px;margin-left:1px;line-height:1}<\/style>\n\n<div class=\"mce-vs-salesrabbit\">\n\n<!-- ============================== HERO ============================== -->\n<section class=\"hero\">\n  <div class=\"w\">\n    <div class=\"hero-brand-row\">\n      <div class=\"hero-brand\">\n        <img decoding=\"async\" class=\"mapsly-mark\" src=\"https:\/\/mapsly.com\/wp-content\/uploads\/2026\/06\/mapsly-tight.png\" alt=\"Mapsly\">\n        <span class=\"vs-pill\">vs<\/span>\n        <img decoding=\"async\" class=\"comp-mark\" src=\"https:\/\/mapsly.com\/wp-content\/uploads\/2026\/07\/salesrabbit-logo-1.webp\" alt=\"SalesRabbit\">\n      <\/div>\n    <\/div>\n    <div class=\"hero-inner\">\n      <div class=\"hero-text\">\n        <h1>More Than a Sales&nbsp;App: <span class=\"accent\">Mapsly Runs the&nbsp;Field.<\/span><\/h1>\n        <p class=\"hero-kicker\"><span class=\"vendor\">SalesRabbit<\/span> is the canvassing app; <span class=\"us-hl\">Mapsly<\/span> is the platform that routes, automates, and scales the whole field team.<\/p>\n        <div class=\"hero-actions\">\n          <a href=\"https:\/\/app.mapsly.com\/signup\" class=\"btn btn-purple btn-big\">Try Mapsly free\n            \n          <\/a>\n          <a href=\"https:\/\/calendly.com\/mapsly-meeting\/quick-demo\" class=\"btn btn-outline btn-big\">Book a call<\/a>\n        <\/div>\n      <\/div>\n\n      <div class=\"hero-devices\">\n        <img decoding=\"async\" class=\"laptop\" src=\"https:\/\/mapsly.com\/wp-content\/uploads\/2026\/06\/laptop-transparent-scaled.png\" alt=\"Mapsly on laptop\">\n        <img decoding=\"async\" class=\"phone\" src=\"https:\/\/mapsly.com\/wp-content\/uploads\/2026\/06\/iphone-route-transparent.png\" alt=\"Mapsly mobile route\">\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- ============================== RAIL NAV (page-wide) ============================== -->\n<aside class=\"features-rail-aside\" aria-label=\"Page navigation\">\n  <ul class=\"features-nav-list\">\n    <li><a href=\"#vs-salesrabbit-snapshot\"><span class=\"feat-nav-ico\"><iconify-icon icon=\"tabler:layout-grid\"><\/iconify-icon><\/span><span>Snapshot<\/span><\/a><\/li>\n    <li><a href=\"#vs-salesrabbit-model\"><span class=\"feat-nav-ico\"><iconify-icon icon=\"tabler:layers-subtract\"><\/iconify-icon><\/span><span>Model<\/span><\/a><\/li>\n    <li><a href=\"#vs-salesrabbit-capabilities\"><span class=\"feat-nav-ico\"><iconify-icon icon=\"tabler:apps\"><\/iconify-icon><\/span><span>Platform<\/span><\/a><\/li>\n    <li><a href=\"#vs-salesrabbit-roi\"><span class=\"feat-nav-ico\"><iconify-icon icon=\"tabler:chart-line\"><\/iconify-icon><\/span><span>ROI<\/span><\/a><\/li>\n  <\/ul>\n  <div class=\"rail-cta-divider\"><\/div>\n  <div class=\"rail-ctas\">\n    <a class=\"rail-cta rail-cta-primary\" href=\"https:\/\/app.mapsly.com\/signup\" target=\"_blank\" rel=\"noopener\">\n      <iconify-icon icon=\"tabler:rocket\"><\/iconify-icon><span>Try free<\/span>\n    <\/a>\n    <a class=\"rail-cta\" href=\"https:\/\/calendly.com\/mapsly-meeting\/quick-demo\" target=\"_blank\" rel=\"noopener\">\n      <iconify-icon icon=\"tabler:headset\"><\/iconify-icon><span>Book a call<\/span>\n    <\/a>\n    <button class=\"rail-cta rail-cta-ai\" type=\"button\" aria-expanded=\"false\" aria-controls=\"rail-ai-picker\" onclick=\"window.mceVsAiPicker(this)\">\n      <iconify-icon icon=\"tabler:sparkles\"><\/iconify-icon><span>Ask your AI<\/span>\n    <\/button>\n    <div class=\"rail-ai-picker\" id=\"rail-ai-picker\" data-competitor=\"SalesRabbit\" data-page-url=\"https:\/\/mapsly.com\/alternatives\/mapsly-vs-salesrabbit\/\" hidden>\n      <a class=\"rail-ai-opt\" data-ai-provider=\"chatgpt\" href=\"#\" target=\"_blank\" rel=\"noopener\">\n        <span class=\"rail-ai-opt-name\">ChatGPT<\/span>\n        \n      <\/a>\n      <a class=\"rail-ai-opt\" data-ai-provider=\"claude\" href=\"#\" target=\"_blank\" rel=\"noopener\">\n        <span class=\"rail-ai-opt-name\">Claude<\/span>\n        \n      <\/a>\n      <a class=\"rail-ai-opt\" data-ai-provider=\"gemini\" href=\"#\" target=\"_blank\" rel=\"noopener\">\n        <span class=\"rail-ai-opt-name\">Gemini<\/span>\n        \n      <\/a>\n    <\/div>\n  <\/div>\n<\/aside>\n\n<nav class=\"features-nav-bar\" aria-label=\"Page navigation (mobile)\">\n  <div class=\"w\">\n    <ul class=\"features-nav-list\">\n      <li><a href=\"#vs-salesrabbit-snapshot\"><span class=\"feat-nav-ico\"><iconify-icon icon=\"tabler:layout-grid\"><\/iconify-icon><\/span><span>Snapshot<\/span><\/a><\/li>\n      <li><a href=\"#vs-salesrabbit-model\"><span class=\"feat-nav-ico\"><iconify-icon icon=\"tabler:layers-subtract\"><\/iconify-icon><\/span><span>Model<\/span><\/a><\/li>\n      <li><a href=\"#vs-salesrabbit-capabilities\"><span class=\"feat-nav-ico\"><iconify-icon icon=\"tabler:apps\"><\/iconify-icon><\/span><span>Platform<\/span><\/a><\/li>\n      <li><a href=\"#vs-salesrabbit-roi\"><span class=\"feat-nav-ico\"><iconify-icon icon=\"tabler:chart-line\"><\/iconify-icon><\/span><span>ROI<\/span><\/a><\/li>\n    <\/ul>\n  <\/div>\n<\/nav>\n\n<!-- ============================== TRUST STRIP ============================== -->\n<div class=\"strip\">\n  <div class=\"w\">\n    <div class=\"strip-row\">\n      <div class=\"strip-item\">\n        <div class=\"scheck\">\n          <svg viewBox=\"0 0 11 11\" fill=\"none\" aria-hidden=\"true\"><path d=\"M2 5.5l2.5 2.5 4.5-4\" stroke=\"white\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg>\n        <\/div>\n        Multi-rep, multi-day routing in one run\n      <\/div>\n      <div class=\"strip-item\">\n        <div class=\"scheck\">\n          <svg viewBox=\"0 0 11 11\" fill=\"none\" aria-hidden=\"true\"><path d=\"M2 5.5l2.5 2.5 4.5-4\" stroke=\"white\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg>\n        <\/div>\n        Offline maps &amp; CRM data on iOS and Android\n      <\/div>\n      <div class=\"strip-item\">\n        <div class=\"scheck\">\n          <svg viewBox=\"0 0 11 11\" fill=\"none\" aria-hidden=\"true\"><path d=\"M2 5.5l2.5 2.5 4.5-4\" stroke=\"white\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg>\n        <\/div>\n        Free trial + implementation included\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<!-- ============================== SNAPSHOT TABLE ============================== -->\n<section class=\"sec sec-tier-2 sec-gray\" id=\"vs-salesrabbit-snapshot\">\n  <div class=\"w\">\n    <div class=\"hd rv\">\n      <span class=\"eyebrow\">At a Glance<\/span>\n      <h2 class=\"sec-title\">Side-by-Side Snapshot.<\/h2>\n      <p class=\"sec-sub\">Verbatim caps from SalesRabbit&rsquo;s public documentation, footnoted at the bottom of the page&mdash;next to what ships with Mapsly.<\/p>\n    <\/div>\n\n    <div class=\"ctab-wrap rv\">\n      <div class=\"ctab-head\">\n        <div class=\"ctab-h cap-h\">Capability<\/div>\n        <div class=\"ctab-h them\">\n          <span class=\"ctab-h-mark\"><img decoding=\"async\" class=\"comp-mark\" src=\"https:\/\/mapsly.com\/wp-content\/uploads\/2026\/07\/salesrabbit-logo-1.webp\" alt=\"SalesRabbit\"><\/span>\n          <span class=\"ctab-h-sub\">Door-to-door sales app<\/span>\n        <\/div>\n        <div class=\"ctab-h us\">\n          <span class=\"ctab-h-mark us\"><img decoding=\"async\" src=\"https:\/\/mapsly.com\/wp-content\/uploads\/2026\/06\/mapsly-tight.png\" alt=\"Mapsly\"><\/span>\n          <span class=\"ctab-h-sub\">Field-ops platform<\/span>\n        <\/div>\n      <\/div>\n\n      <div class=\"ctab-group\"><iconify-icon icon=\"tabler:route\"><\/iconify-icon><span>Routing<\/span><\/div>\n      <div class=\"ctab-row\">\n        <div class=\"ctab-cell dim\">Stops per planning run<\/div>\n        <div class=\"ctab-cell them\"><span>Up to 23 waypoints per route<sup><a href=\"#fn-1\">1<\/a><\/sup><\/span><\/div>\n        <div class=\"ctab-cell us\"><span>Thousands of stops&mdash;the whole team in one&nbsp;run<\/span><\/div>\n      <\/div>\n      <div class=\"ctab-row\">\n        <div class=\"ctab-cell dim\">Routes for the whole team<\/div>\n        <div class=\"ctab-cell them\"><span>Each rep routes only their own leads<sup><a href=\"#fn-2\">2<\/a><\/sup><\/span><\/div>\n        <div class=\"ctab-cell us\"><span>Every rep planned in one run<\/span><\/div>\n      <\/div>\n      <div class=\"ctab-row\">\n        <div class=\"ctab-cell dim\">Multi-day planning with recurring cadences<\/div>\n        <div class=\"ctab-cell them\"><span class=\"mark-no\"><iconify-icon icon=\"tabler:x\" width=\"14\" height=\"14\"><\/iconify-icon><\/span><\/div>\n        <div class=\"ctab-cell us\"><span class=\"mark-yes\"><iconify-icon icon=\"tabler:check\" width=\"14\" height=\"14\"><\/iconify-icon><\/span><\/div>\n      <\/div>\n      <div class=\"ctab-row\">\n        <div class=\"ctab-cell dim\">Capacity, skills, and open hours in the optimizer<\/div>\n        <div class=\"ctab-cell them\"><span>Appointments reordered by hand<sup><a href=\"#fn-1\">1<\/a><\/sup><\/span><\/div>\n        <div class=\"ctab-cell us\"><span class=\"mark-yes\"><iconify-icon icon=\"tabler:check\" width=\"14\" height=\"14\"><\/iconify-icon><\/span><\/div>\n      <\/div>\n      <div class=\"ctab-row\">\n        <div class=\"ctab-cell dim\">Route planning on the web<\/div>\n        <div class=\"ctab-cell them\"><span>Mobile app only<sup><a href=\"#fn-3\">3<\/a><\/sup><\/span><\/div>\n        <div class=\"ctab-cell us\"><span>Full web platform + native apps<\/span><\/div>\n      <\/div>\n\n      <div class=\"ctab-group\"><iconify-icon icon=\"tabler:device-mobile\"><\/iconify-icon><span>Field operations<\/span><\/div>\n      <div class=\"ctab-row\">\n        <div class=\"ctab-cell dim\">Native iOS and Android apps<\/div>\n        <div class=\"ctab-cell them\"><span class=\"mark-yes\"><iconify-icon icon=\"tabler:check\" width=\"14\" height=\"14\"><\/iconify-icon><\/span><\/div>\n        <div class=\"ctab-cell us\"><span class=\"mark-yes\"><iconify-icon icon=\"tabler:check\" width=\"14\" height=\"14\"><\/iconify-icon><\/span><\/div>\n      <\/div>\n      <div class=\"ctab-row\">\n        <div class=\"ctab-cell dim\">Offline data scope<\/div>\n        <div class=\"ctab-cell them\"><span>Create and edit leads; buyer-score pins need a connection<sup><a href=\"#fn-4\">4<\/a><\/sup><\/span><\/div>\n        <div class=\"ctab-cell us\"><span>Offline maps + CRM data, built&nbsp;in<\/span><\/div>\n      <\/div>\n      <div class=\"ctab-row\">\n        <div class=\"ctab-cell dim\">Field capture: photo, video, e-signature, barcode \/ QR<\/div>\n        <div class=\"ctab-cell them\"><span>Forms on Pro; e-signature is a paid add-on<sup><a href=\"#fn-5\">5<\/a><\/sup><\/span><\/div>\n        <div class=\"ctab-cell us\"><span>Photo &middot; video &middot; e-signature &middot; barcode \/ QR<\/span><\/div>\n      <\/div>\n\n      <div class=\"ctab-group\"><iconify-icon icon=\"tabler:vector-triangle\"><\/iconify-icon><span>Territories<\/span><\/div>\n      <div class=\"ctab-row\">\n        <div class=\"ctab-cell dim\">Territory creation<\/div>\n        <div class=\"ctab-cell them\"><span>Hand-drawn areas&mdash;the vendor suggests 3&ndash;5 blocks each<sup><a href=\"#fn-6\">6<\/a><\/sup><\/span><\/div>\n        <div class=\"ctab-cell us\"><span>Draw, import, postal-code and county libraries&mdash;worldwide<\/span><\/div>\n      <\/div>\n      <div class=\"ctab-row\">\n        <div class=\"ctab-cell dim\">KML \/ GeoJSON \/ Shapefile import<\/div>\n        <div class=\"ctab-cell them\"><span>KML \/ KMZ as display-only overlays, 10&nbsp;MB cap<sup><a href=\"#fn-7\">7<\/a><\/sup><\/span><\/div>\n        <div class=\"ctab-cell us\"><span>All three&mdash;as live territories<\/span><\/div>\n      <\/div>\n      <div class=\"ctab-row\">\n        <div class=\"ctab-cell dim\">Demographic balancing (American Community Survey)<\/div>\n        <div class=\"ctab-cell them\"><span class=\"mark-no\"><iconify-icon icon=\"tabler:x\" width=\"14\" height=\"14\"><\/iconify-icon><\/span><\/div>\n        <div class=\"ctab-cell us\"><span class=\"mark-yes\"><iconify-icon icon=\"tabler:check\" width=\"14\" height=\"14\"><\/iconify-icon><\/span><\/div>\n      <\/div>\n\n      <div class=\"ctab-group\"><iconify-icon icon=\"tabler:layers-subtract\"><\/iconify-icon><span>Platform &amp; extensibility<\/span><\/div>\n      <div class=\"ctab-row\">\n        <div class=\"ctab-cell dim\">Automation engine<\/div>\n        <div class=\"ctab-cell them\"><span>Status-triggered pushes, webhooks, and Zapier&mdash;Pro plan<sup><a href=\"#fn-8\">8<\/a><\/sup><\/span><\/div>\n        <div class=\"ctab-cell us\"><span>Context- and metadata-driven automation<\/span><\/div>\n      <\/div>\n      <div class=\"ctab-row\">\n        <div class=\"ctab-cell dim\">Custom apps<\/div>\n        <div class=\"ctab-cell them\"><span class=\"mark-no\"><iconify-icon icon=\"tabler:x\" width=\"14\" height=\"14\"><\/iconify-icon><\/span><\/div>\n        <div class=\"ctab-cell us\"><span>Built for you by a Mapsly solution engineer&mdash;included<\/span><\/div>\n      <\/div>\n      <div class=\"ctab-row\">\n        <div class=\"ctab-cell dim\">Custom fields<\/div>\n        <div class=\"ctab-cell them\"><span>Text capped at 30 characters&mdash;Pro plan<sup><a href=\"#fn-9\">9<\/a><\/sup><\/span><\/div>\n        <div class=\"ctab-cell us\"><span>Every field, any type, mirrored automatically<\/span><\/div>\n      <\/div>\n      <div class=\"ctab-row\">\n        <div class=\"ctab-cell dim\">Analytics<\/div>\n        <div class=\"ctab-cell them\"><span>Amplify boards; gamification on Pro<sup><a href=\"#fn-10\">10<\/a><\/sup><\/span><\/div>\n        <div class=\"ctab-cell us\"><span>40+ chart types &middot; SQL &middot; no per-report cap<\/span><\/div>\n      <\/div>\n      <div class=\"ctab-row\">\n        <div class=\"ctab-cell dim\">Embedded maps in your CRM or portal<\/div>\n        <div class=\"ctab-cell them\"><span class=\"mark-no\"><iconify-icon icon=\"tabler:x\" width=\"14\" height=\"14\"><\/iconify-icon><\/span><\/div>\n        <div class=\"ctab-cell us\"><span class=\"mark-yes\"><iconify-icon icon=\"tabler:check\" width=\"14\" height=\"14\"><\/iconify-icon><\/span><\/div>\n      <\/div>\n\n      <div class=\"ctab-group\"><iconify-icon icon=\"tabler:headset\"><\/iconify-icon><span>Service &amp; commercial<\/span><\/div>\n      <div class=\"ctab-row\">\n        <div class=\"ctab-cell dim\">Free trial<\/div>\n        <div class=\"ctab-cell them\"><span>No free trial of paid plans&mdash;a free Lite app instead<sup><a href=\"#fn-11\">11<\/a><\/sup><\/span><\/div>\n        <div class=\"ctab-cell us\"><span>Free trial of the full platform<\/span><\/div>\n      <\/div>\n      <div class=\"ctab-row\">\n        <div class=\"ctab-cell dim\">Implementation<\/div>\n        <div class=\"ctab-cell them\"><span>A paid implementation package is always required<sup><a href=\"#fn-11\">11<\/a><\/sup><\/span><\/div>\n        <div class=\"ctab-cell us\"><span>Solution engineer builds your setup&mdash;included<\/span><\/div>\n      <\/div>\n      <div class=\"ctab-row\">\n        <div class=\"ctab-cell dim\">Add-on pricing<\/div>\n        <div class=\"ctab-cell them\"><span>Buyer scores, weather, e-signature, mover leads&mdash;per user, billed account-wide<sup><a href=\"#fn-12\">12<\/a><\/sup><\/span><\/div>\n        <div class=\"ctab-cell us\"><span>Platform capabilities included<\/span><\/div>\n      <\/div>\n      <div class=\"ctab-row\">\n        <div class=\"ctab-cell dim\">Supported CRMs<\/div>\n        <div class=\"ctab-cell them\"><span>Event-push connectors on Pro; Salesforce needs Enterprise edition or higher<sup><a href=\"#fn-13\">13<\/a><\/sup><\/span><\/div>\n        <div class=\"ctab-cell us\"><span>15+&nbsp;CRMs &middot; two&#8209;way&nbsp;sync &middot; no&nbsp;lock&#8209;in<\/span><\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- ============================== MODEL CARD TRIO ============================== -->\n<section class=\"sec sec-tier-1 sec-gray model-sec\" id=\"vs-salesrabbit-model\">\n  <div class=\"w\">\n    <div class=\"hd rv\">\n      <span class=\"eyebrow\">The Mapsly Model<\/span>\n      <h2 class=\"sec-title\">Two Models of a Field&nbsp;Platform.<\/h2>\n      <p class=\"sec-sub\">Three places the products diverge&mdash;each with SalesRabbit&rsquo;s own words underneath.<\/p>\n    <\/div>\n\n    <div class=\"model-grid rv\">\n      <article class=\"model-card\">\n        <div class=\"model-card-num\"><iconify-icon icon=\"tabler:tools\"><\/iconify-icon><\/div>\n        <h3 class=\"model-card-title\">Try It Free. Implementation&nbsp;Included.<\/h3>\n        <p class=\"model-card-body\">Mapsly ships a self-serve free trial of the full platform&mdash;plus a solution engineer who runs onboarding and a proof of concept inside the subscription. No implementation fee, no one- to three-year contract to sign first.<\/p>\n        <div class=\"model-card-divider\"><\/div>\n        <div class=\"model-card-them\">\n          <div class=\"model-card-them-h\"><img decoding=\"async\" src=\"https:\/\/mapsly.com\/wp-content\/uploads\/2026\/07\/salesrabbit-logo-1.webp\" alt=\"SalesRabbit\"><\/div>\n          <p class=\"model-card-them-body\"><em>&ldquo;Is an implementation package always required? &mdash; Yes. Our implementation packages include getting a new account set up and launched, which is an expensive process&hellip;&rdquo;<\/em><\/p>\n          <a class=\"model-card-them-src\" href=\"https:\/\/salesrabbit.com\/pricing\/\" target=\"_blank\" rel=\"noopener\">source<\/a>\n        <\/div>\n      <\/article>\n\n      <article class=\"model-card\">\n        <div class=\"model-card-num\"><iconify-icon icon=\"tabler:code\"><\/iconify-icon><\/div>\n        <h3 class=\"model-card-title\">Automation + Custom Apps, One&nbsp;Engine.<\/h3>\n        <p class=\"model-card-body\">Context- and metadata-driven automation&mdash;geofence and schedule triggers, conditions on your records and relationships&mdash;and the same engine powers custom apps a Mapsly solution engineer builds for you, included.<\/p>\n        <div class=\"model-card-divider\"><\/div>\n        <div class=\"model-card-them\">\n          <div class=\"model-card-them-h\"><img decoding=\"async\" src=\"https:\/\/mapsly.com\/wp-content\/uploads\/2026\/07\/salesrabbit-logo-1.webp\" alt=\"SalesRabbit\"><\/div>\n          <p class=\"model-card-them-body\">Automation on SalesRabbit runs through its Zapier integration&mdash;<em>&ldquo;Integrate - Automate - Innovate (Available on SalesRabbit pro plan only)&rdquo;<\/em>&mdash;pushing lead data to outside apps.<\/p>\n          <a class=\"model-card-them-src\" href=\"https:\/\/help.salesrabbit.com\/hc\/en-us\/articles\/115010422148-Zapier-Overview\" target=\"_blank\" rel=\"noopener\">source<\/a>\n        <\/div>\n      <\/article>\n\n      <article class=\"model-card\">\n        <div class=\"model-card-num\"><iconify-icon icon=\"tabler:layout-grid\"><\/iconify-icon><\/div>\n        <h3 class=\"model-card-title\">Operations Planning at Team&nbsp;Scale.<\/h3>\n        <p class=\"model-card-body\">Mapsly plans the whole field operation in one run&mdash;every rep, multiple days, thousands of stops&mdash;with capacity, skills, and open hours. Routing is one capability of the platform, not the product.<\/p>\n        <div class=\"model-card-divider\"><\/div>\n        <div class=\"model-card-them\">\n          <div class=\"model-card-them-h\"><img decoding=\"async\" src=\"https:\/\/mapsly.com\/wp-content\/uploads\/2026\/07\/salesrabbit-logo-1.webp\" alt=\"SalesRabbit\"><\/div>\n          <p class=\"model-card-them-body\"><em>&ldquo;Users manage their own routes. Routes cannot be created for other users&rdquo;<\/em>&mdash;and <em>&ldquo;a single route can only include up to 23 waypoints\/stops.&rdquo;<\/em><\/p>\n          <a class=\"model-card-them-src\" href=\"https:\/\/help.salesrabbit.com\/hc\/en-us\/articles\/360035913094-5-Routing-Leads-Mobile-App\" target=\"_blank\" rel=\"noopener\">source<\/a>\n        <\/div>\n      <\/article>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- ============================== PLATFORM-LAYER TILES ============================== -->\n<section class=\"sec sec-tier-2 sec-gray\" id=\"vs-salesrabbit-capabilities\">\n  <div class=\"w\">\n    <div class=\"hd rv\">\n      <span class=\"eyebrow\">The Platform Layer<\/span>\n      <h2 class=\"sec-title\">The Platform Layer SalesRabbit Doesn&rsquo;t&nbsp;Ship.<\/h2>\n      <p class=\"sec-sub\">Six surfaces included with Mapsly&mdash;on SalesRabbit&rsquo;s side, undocumented on public surfaces or sold as an&nbsp;add-on.<\/p>\n    <\/div>\n\n    <div class=\"cap-grid\">\n      <div class=\"cap rv\">\n        <div class=\"ico\"><iconify-icon icon=\"tabler:apps\" width=\"28\" height=\"28\" style=\"color:#6512BE\"><\/iconify-icon><\/div>\n        <h3>Custom Apps<\/h3>\n        <p>Dispatch widgets, delivery apps, store locators, route timelines&mdash;built for your operation by a Mapsly solution engineer on the platform&rsquo;s own engine, at no extra cost.<\/p>\n        <span class=\"stat\"><span class=\"n\">Included<\/span> with the platform<\/span>\n      <\/div>\n      <div class=\"cap rv\">\n        <div class=\"ico\"><iconify-icon icon=\"tabler:bolt\" width=\"28\" height=\"28\" style=\"color:#6512BE\"><\/iconify-icon><\/div>\n        <h3>Automation<\/h3>\n        <p>Context- and metadata-driven logic against your records, fields, and relationships&mdash;geofence entry, schedule triggers, distance conditions, CRM updates, and notifications.<\/p>\n        <span class=\"stat\"><span class=\"n\">Any<\/span> trigger &middot; any action<\/span>\n      <\/div>\n      <div class=\"cap rv\">\n        <div class=\"ico\"><iconify-icon icon=\"tabler:plug-connected\" width=\"28\" height=\"28\" style=\"color:#6512BE\"><\/iconify-icon><\/div>\n        <h3>Multi-Source &middot; Multi-Object<\/h3>\n        <p>Route and read any object your CRM exposes&mdash;accounts, contacts, deals, custom objects&mdash;across multiple sources at once, with a self-healing metadata mirror.<\/p>\n        <span class=\"stat\"><span class=\"n\">15+<\/span> CRMs<\/span>\n      <\/div>\n      <div class=\"cap rv\">\n        <div class=\"ico\"><iconify-icon icon=\"tabler:chart-bar\" width=\"28\" height=\"28\" style=\"color:#6512BE\"><\/iconify-icon><\/div>\n        <h3>Analytics<\/h3>\n        <p>Drag-and-drop dashboards over route, check-in, and live CRM data&mdash;40+ chart types and direct SQL for anything bespoke, with no per-report cap.<\/p>\n        <span class=\"stat\"><span class=\"n\">40+<\/span> chart types<\/span>\n      <\/div>\n      <div class=\"cap rv\">\n        <div class=\"ico\"><iconify-icon icon=\"tabler:map-2\" width=\"28\" height=\"28\" style=\"color:#6512BE\"><\/iconify-icon><\/div>\n        <h3>Embedded Maps<\/h3>\n        <p>Put the live map inside your CRM or customer portal&mdash;reps and partners work where they already are, no extra tab.<\/p>\n        <span class=\"stat\">CRM &amp; portal<\/span>\n      <\/div>\n      <div class=\"cap rv\">\n        <div class=\"ico\"><iconify-icon icon=\"tabler:device-mobile\" width=\"28\" height=\"28\" style=\"color:#6512BE\"><\/iconify-icon><\/div>\n        <h3>Offline-First Mobile<\/h3>\n        <p>Native iOS and Android apps with offline maps and CRM data&mdash;capture photos, video, e-signatures, and barcode \/ QR in the field, syncing when back online.<\/p>\n        <span class=\"stat\"><span class=\"n\">iOS<\/span> + Android<\/span>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- ============================== TECH CALLOUT ============================== -->\n<section class=\"sec sec-tier-3\">\n  <div class=\"w\">\n    <div class=\"dd-tech rv\">\n      <div class=\"dd-tech-head\">\n        <div class=\"dd-tech-ico\"><img decoding=\"async\" src=\"https:\/\/mapsly.com\/wp-content\/uploads\/2026\/05\/tabler-bulb.svg\" alt=\"\"><\/div>\n        <div class=\"dd-tech-headline\">\n          <h4>The Optimizer Makes the Difference.<\/h4>\n          <p class=\"dd-tech-body\">SalesRabbit&rsquo;s Route It reorders a rep&rsquo;s own waypoints on the phone&mdash;up to 23 stops per route, with appointments moved by hand.<sup><a href=\"#fn-1\">1<\/a><\/sup> <strong>Mapsly solves the traveling-salesman problem at team scale<\/strong>&mdash;thousands of stops across every rep and multiple days, with capacity, skills, and open hours.<\/p>\n        <\/div>\n      <\/div>\n      <div class=\"dd-tech-benefits\">\n        <div class=\"dd-tech-benefit\">\n          <span class=\"dd-tech-benefit-ico\"><img decoding=\"async\" src=\"https:\/\/mapsly.com\/wp-content\/uploads\/2026\/05\/tabler-vector-triangle.svg\" alt=\"\"><\/span>\n          <div class=\"dd-tech-benefit-text\"><strong>Whole-team runs<\/strong><span>Every rep planned in one pass<\/span><\/div>\n        <\/div>\n        <div class=\"dd-tech-benefit\">\n          <span class=\"dd-tech-benefit-ico\"><img decoding=\"async\" src=\"https:\/\/mapsly.com\/wp-content\/uploads\/2026\/05\/tabler-trending-down.svg\" alt=\"\"><\/span>\n          <div class=\"dd-tech-benefit-text\"><strong>Less drive time<\/strong><span>Tighter sequences, fewer miles<\/span><\/div>\n        <\/div>\n        <div class=\"dd-tech-benefit\">\n          <span class=\"dd-tech-benefit-ico\"><img decoding=\"async\" src=\"https:\/\/mapsly.com\/wp-content\/uploads\/2026\/05\/tabler-scale.svg\" alt=\"\"><\/span>\n          <div class=\"dd-tech-benefit-text\"><strong>Real constraints<\/strong><span>Capacity, skills, and open hours<\/span><\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- ============================== CUSTOMER STORIES ============================== -->\n<section class=\"sec sec-tier-3\" id=\"vs-salesrabbit-stories\">\n  <div class=\"w\">\n    <div class=\"hd rv\">\n      <span class=\"eyebrow\">In Their Words<\/span>\n      <h2 class=\"sec-title\">Customer Stories From Field&nbsp;Teams.<\/h2>\n    <\/div>\n    <div class=\"quote-grid\">\n      <article class=\"quote-card rv\">\n        <p class=\"quote-body\">&ldquo;Last week, we remapped our entire sales force in just <strong>two days<\/strong>. Before, that would have taken us about <strong>two weeks<\/strong>.&rdquo;<\/p>\n        <div class=\"quote-attr\">\n          <div class=\"quote-avatar\">BR<\/div>\n          <div class=\"quote-attr-text\">\n            <div class=\"quote-name\">Billy Reagin<\/div>\n            <div class=\"quote-meta\">National Sales Manager &middot; Fox&nbsp;Factory<\/div>\n          <\/div>\n        <\/div>\n        <a class=\"quote-link\" href=\"https:\/\/mapsly.com\/customer-success-stories\/fox-factory-case-study\/\" target=\"_blank\" rel=\"noopener\">\n          Read the Fox Factory case study\n          \n        <\/a>\n      <\/article>\n\n      <article class=\"quote-card rv\">\n        <p class=\"quote-body\">&ldquo;Before, planning a route took <strong>1&ndash;2 hours<\/strong>. With Mapsly it takes <strong>10&ndash;15 minutes<\/strong> and we&rsquo;re ready for the next&nbsp;day.&rdquo;<\/p>\n        <div class=\"quote-attr\">\n          <div class=\"quote-avatar\">GL<\/div>\n          <div class=\"quote-attr-text\">\n            <div class=\"quote-name\">Gabriel Lussier<\/div>\n            <div class=\"quote-meta\">Go-to-market lead &middot; Cisolift<\/div>\n          <\/div>\n        <\/div>\n        <a class=\"quote-link\" href=\"https:\/\/mapsly.com\/customer-success-stories\/cisolift-case-study\/\" target=\"_blank\" rel=\"noopener\">\n          Read the Cisolift case study\n          \n        <\/a>\n      <\/article>\n\n      <article class=\"quote-card rv\">\n        <p class=\"quote-body\">&ldquo;Mapsly boosted our team&rsquo;s productivity by <strong>+200%<\/strong>, far beyond our&nbsp;expectations.&rdquo;<\/p>\n        <div class=\"quote-attr\">\n          <div class=\"quote-avatar\">EL<\/div>\n          <div class=\"quote-attr-text\">\n            <div class=\"quote-name\">Erick Lindenberg<\/div>\n            <div class=\"quote-meta\">Zeitview &middot; field service operations<\/div>\n          <\/div>\n        <\/div>\n        <a class=\"quote-link\" href=\"https:\/\/mapsly.com\/customer-success-stories\/\" target=\"_blank\" rel=\"noopener\">\n          Read the Zeitview case study\n          \n        <\/a>\n      <\/article>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- ============================== ROI (two bands) ============================== -->\n<section class=\"sec sec-tier-2 sec-gray\" id=\"vs-salesrabbit-roi\">\n  <div class=\"w\">\n    <div class=\"hd rv\">\n      <span class=\"eyebrow\">Field-Team ROI<\/span>\n      <h2 class=\"sec-title\">What Customers Report After Using&nbsp;Mapsly.<\/h2>\n      <p class=\"sec-sub\">Two views: outcomes Mapsly users report from their own field teams, and what the ROI calculator projects for a sample 15-rep team.<\/p>\n    <\/div>\n\n    <div class=\"roi-band rv\">\n      <div class=\"roi-band-h\">\n        <span class=\"roi-band-tag\"><iconify-icon icon=\"tabler:user-check\"><\/iconify-icon>Reported by Mapsly customers<\/span>\n        <span class=\"roi-band-note\">Field-team outcomes from the Mapsly customer base.<\/span>\n      <\/div>\n      <div class=\"metrics-grid\">\n        <div class=\"metric rv\">\n          <div class=\"num\">20%<\/div>\n          <div class=\"label\"><strong>more service stops<\/strong><span>same team<\/span><\/div>\n        <\/div>\n        <div class=\"metric rv\">\n          <div class=\"num\">60%<\/div>\n          <div class=\"label\"><strong>less time planning<\/strong><span>routes per week<\/span><\/div>\n        <\/div>\n        <div class=\"metric rv\">\n          <div class=\"num\">3&times;<\/div>\n          <div class=\"label\"><strong>more data per visit<\/strong><span>same rep time<\/span><\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"roi-calc rv\">\n      <div class=\"roi-band-h\">\n        <span class=\"roi-band-tag roi-band-tag-calc\"><iconify-icon icon=\"tabler:calculator\"><\/iconify-icon>Projected by the ROI calculator<\/span>\n        <span class=\"roi-band-note\">Modeled annual results for a 15-rep field team&mdash;adjust every input in the live&nbsp;calculator.<\/span>\n      <\/div>\n\n      <div class=\"roi-tiles\">\n        <div class=\"roi-tile rv\">\n          <div class=\"roi-tile-ico\"><iconify-icon icon=\"tabler:cash-banknote\"><\/iconify-icon><\/div>\n          <div class=\"roi-tile-h\">Net Annual Value<\/div>\n          <div class=\"roi-tile-num\">$100K+<\/div>\n          <div class=\"roi-tile-sub\">Gas savings + freed-up time &minus; Mapsly annual cost for a typical 15-rep team<\/div>\n        <\/div>\n        <div class=\"roi-tile rv\">\n          <div class=\"roi-tile-ico\"><iconify-icon icon=\"tabler:clock-hour-4\"><\/iconify-icon><\/div>\n          <div class=\"roi-tile-h\">Freed-up Hours<\/div>\n          <div class=\"roi-tile-num\">2,000+<\/div>\n          <div class=\"roi-tile-sub\">For the entire team,&nbsp;annually<\/div>\n        <\/div>\n        <div class=\"roi-tile roi-tile-accent rv\">\n          <div class=\"roi-tile-ico\"><iconify-icon icon=\"tabler:trending-up\"><\/iconify-icon><\/div>\n          <div class=\"roi-tile-h\">Return Multiplier<\/div>\n          <div class=\"roi-tile-num\">10&times;+<\/div>\n          <div class=\"roi-tile-sub\">Return on Mapsly investment&mdash;see your number with the live&nbsp;calculator<\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"roi-cta rv\">\n        <span class=\"roi-cta-label\">Plug in your own numbers:<\/span>\n        <a class=\"btn btn-purple\" href=\"https:\/\/mapsly.com\/pricing\/?mode=saving&amp;unit=imperial&amp;reps=15&amp;revenue=400000&amp;visit_inc=20&amp;visit_conv=50&amp;margin=30&amp;hourly=50&amp;miles=500&amp;drive_red=20&amp;mpg=25&amp;gas_price=3.2&amp;driving=12&amp;planning=3&amp;plan_red=30&amp;scroll_to=roi_calculator\" target=\"_blank\" rel=\"noopener\">Open the ROI calculator\n          \n        <\/a>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- ============================== DISCLAIMER ============================== -->\n<section class=\"sec sec-tier-3 disclaimer-sec\">\n  <div class=\"w\">\n    <div class=\"faq-disclaimer rv\">\n      <iconify-icon icon=\"tabler:info-circle\"><\/iconify-icon>\n      <span>Based on SalesRabbit&rsquo;s public website and documentation as of June 2026&mdash;may contain errors. Spotted something? Email <a href=\"mailto:help@mapsly.com\">help@mapsly.com<\/a>.<\/span>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- ============================== FAQ ============================== -->\n<section class=\"sec sec-tier-3 sec-gray faq-sec\" id=\"vs-salesrabbit-faq\">\n  <div class=\"w\">\n    <div class=\"faq-wrap\">\n      <div class=\"rv\">\n        <span class=\"eyebrow\">FAQ<\/span>\n        <div class=\"faq-hed\">\n          <h2>Common Questions<\/h2>\n          <p><a href=\"https:\/\/calendly.com\/mapsly-meeting\/quick-demo\">Talk to the team<\/a><\/p>\n        <\/div>\n      <\/div>\n      <div class=\"faq-list rv\">\n        <div class=\"faq-item open\">\n          <button class=\"faq-q\" aria-expanded=\"false\" onclick=\"mceVsSalesrabbitFaq(this)\">Does Mapsly sync two-way with my CRM?<div class=\"faq-tog\">+<\/div><\/button>\n          <div class=\"faq-a\">Yes&mdash;Mapsly offers native two-way sync with Salesforce, HubSpot, Zoho, Pipedrive, Microsoft Dynamics 365, and other major CRMs, plus spreadsheets and custom sources via REST API. SalesRabbit&rsquo;s connectors push lead data on form submission or status change, are gated to the Pro plan and above, and the Salesforce connector requires Salesforce Enterprise edition or higher.<sup><a href=\"#fn-13\">13<\/a><\/sup><\/div>\n        <\/div>\n        <div class=\"faq-item\">\n          <button class=\"faq-q\" aria-expanded=\"false\" onclick=\"mceVsSalesrabbitFaq(this)\">What&rsquo;s the actual difference in routing capacity?<div class=\"faq-tog\">+<\/div><\/button>\n          <div class=\"faq-a\">SalesRabbit documents a cap of 23 waypoints per route, each rep can route only their own leads, and appointment ordering is a manual drag.<sup><a href=\"#fn-1\">1<\/a><\/sup><sup><a href=\"#fn-2\">2<\/a><\/sup> Mapsly optimizes the whole team in one run&mdash;thousands of stops, every rep, multiple days&mdash;with capacity, skills, and open hours in the optimizer.<\/div>\n        <\/div>\n        <div class=\"faq-item\">\n          <button class=\"faq-q\" aria-expanded=\"false\" onclick=\"mceVsSalesrabbitFaq(this)\">We knock doors all day. Isn&rsquo;t SalesRabbit built exactly for that?<div class=\"faq-tog\">+<\/div><\/button>\n          <div class=\"faq-a\">For high-volume door-to-door canvassing it genuinely is&mdash;gamified leaderboards and battles, machine-learning buyer scores, new-mover leads, and storm data are purpose-built for that motion. Mapsly is built for teams that run scheduled field operations on CRM data: multi-rep routing, territories, automation, custom apps, and analytics on one platform, on the CRM you already use. If your team is outgrowing knock tracking, that&rsquo;s the switch point.<\/div>\n        <\/div>\n        <div class=\"faq-item\">\n          <button class=\"faq-q\" aria-expanded=\"false\" onclick=\"mceVsSalesrabbitFaq(this)\">Is Mapsly more expensive than SalesRabbit?<div class=\"faq-tog\">+<\/div><\/button>\n          <div class=\"faq-a\">SalesRabbit publishes per-user prices&mdash;Team at $59 monthly, Pro at $49&ndash;75 depending on billing cycle&mdash;but the full cost adds per-user add-ons billed account-wide (DataGrid AI and Weather $19&ndash;31, Digital Contracts and Mover Leads $13&ndash;20), a required implementation package, and a one- to three-year contract.<sup><a href=\"#fn-11\">11<\/a><\/sup><sup><a href=\"#fn-12\">12<\/a><\/sup> Mapsly&rsquo;s pricing is public at <a href=\"https:\/\/mapsly.com\/pricing\/\" target=\"_blank\" rel=\"noopener\">mapsly.com\/pricing<\/a>, implementation is included, and the trial is free. Run both numbers for your team size and add-ons.<\/div>\n        <\/div>\n        <div class=\"faq-item\">\n          <button class=\"faq-q\" aria-expanded=\"false\" onclick=\"mceVsSalesrabbitFaq(this)\">SalesRabbit has DataGrid AI buyer scores. What&rsquo;s Mapsly&rsquo;s answer?<div class=\"faq-tog\">+<\/div><\/button>\n          <div class=\"faq-a\">DataGrid AI is real&mdash;machine-learning buyer scores for homes and neighborhoods. It&rsquo;s a paid add-on at $19&ndash;31 per user per month, works on the mobile app only, and generates up to 3,000 pins per area.<sup><a href=\"#fn-12\">12<\/a><\/sup><sup><a href=\"#fn-14\">14<\/a><\/sup> Mapsly&rsquo;s prospecting works from your CRM data plus American Community Survey indicators on web and mobile, and Mapsly&rsquo;s AI assistant&mdash;voice to text, voice to action, conversational analytics&mdash;is on the roadmap (coming soon). Today, Mapsly&rsquo;s edge is the shipped platform underneath: routing at team scale, Automation + Custom Apps, and analytics without caps.<\/div>\n        <\/div>\n        <div class=\"faq-item\">\n          <button class=\"faq-q\" aria-expanded=\"false\" onclick=\"mceVsSalesrabbitFaq(this)\">Our managers plan on desktop. Does that work?<div class=\"faq-tog\">+<\/div><\/button>\n          <div class=\"faq-a\">On SalesRabbit, routing, DataGrid AI, weather overlays, and push notifications are documented as mobile-app capabilities; the web app covers administration, the web map, lead lists, and exports.<sup><a href=\"#fn-3\">3<\/a><\/sup> Mapsly is a full web platform and a native field app&mdash;managers plan, balance territories, and build dashboards in the browser while reps run the same data on iOS and Android, including offline.<\/div>\n        <\/div>\n        <div class=\"faq-item\">\n          <button class=\"faq-q\" aria-expanded=\"false\" onclick=\"mceVsSalesrabbitFaq(this)\">Can I migrate from SalesRabbit to Mapsly?<div class=\"faq-tog\">+<\/div><\/button>\n          <div class=\"faq-a\">Yes. Start the free trial alongside your current setup&mdash;nothing to rip out&mdash;and a Mapsly solution engineer configures your CRM connector, imports your data, and builds your first workflow and custom app inside the subscription.<\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- ============================== FOOTNOTES ============================== -->\n<section class=\"sec sec-tier-3 footnotes-sec\" id=\"vs-salesrabbit-footnotes\">\n  <div class=\"w\">\n    <div class=\"footnotes-h\">\n      <span class=\"eyebrow\">Sources &amp; Notes<\/span>\n      <h3>Footnotes<\/h3>\n    <\/div>\n    <p class=\"footnotes-note\">Where SalesRabbit is marked unavailable (&#10007;), we found no public documentation of that capability as of June 13, 2026. If we missed something, email <a href=\"mailto:help@mapsly.com\">help@mapsly.com<\/a>.<\/p>\n    <ol class=\"footnotes-list\">\n      <li id=\"fn-1\"><strong>Route cap and manual appointment ordering.<\/strong> SalesRabbit Help Center, &ldquo;5. Routing Leads - Mobile App&rdquo;: <em>&ldquo;a single route can only include up to 23 waypoints\/stops&rdquo;<\/em>; for appointments, users <em>&ldquo;select an existing waypoint and move it up or down the list of waypoints to reorder in case of existing appointments\/go back times.&rdquo;<\/em> Retrieved June 13, 2026. <a href=\"https:\/\/help.salesrabbit.com\/hc\/en-us\/articles\/360035913094-5-Routing-Leads-Mobile-App\" target=\"_blank\" rel=\"noopener\">help.salesrabbit.com &middot; Routing Leads<\/a><\/li>\n      <li id=\"fn-2\"><strong>Single-rep routing.<\/strong> Same article: <em>&ldquo;Users manage their own routes. Routes cannot be created for other users.&rdquo;<\/em> Corroborated in &ldquo;Lasso - iOS&rdquo;: <em>&ldquo;Users are only able to route for leads they own.&rdquo;<\/em> Retrieved June 13, 2026. <a href=\"https:\/\/help.salesrabbit.com\/hc\/en-us\/articles\/360041462293-Lasso-iOS\" target=\"_blank\" rel=\"noopener\">help.salesrabbit.com &middot; Lasso<\/a><\/li>\n      <li id=\"fn-3\"><strong>Mobile-only capabilities.<\/strong> SalesRabbit&rsquo;s platform-comparison help article assigns Routes, DataGrid AI, Weather, and Push Notifications to mobile, with the web app covering the admin portal, web map, lead lists, and exports; routing is documented only in the mobile-app articles. Retrieved June 13, 2026. <a href=\"https:\/\/help.srplus.salesrabbit.com\/hc\/en-us\/articles\/30101303597335-SalesRabbit-Vs-SalesRabbit-Core\" target=\"_blank\" rel=\"noopener\">help.srplus.salesrabbit.com &middot; SalesRabbit vs SalesRabbit Core<\/a><\/li>\n      <li id=\"fn-4\"><strong>Offline limits.<\/strong> SalesRabbit Help Center, &ldquo;Offline Mode&rdquo;: leads can be created and edited offline, but <em>&ldquo;You cannot populate DataGrid information unless you are connected to the internet,&rdquo;<\/em> and after reconnecting users should <em>&ldquo;allow 1-5 minutes for the data to sync.&rdquo;<\/em> Retrieved June 13, 2026. <a href=\"https:\/\/help.salesrabbit.com\/hc\/en-us\/articles\/14156689268375-Offline-Mode\" target=\"_blank\" rel=\"noopener\">help.salesrabbit.com &middot; Offline Mode<\/a><\/li>\n      <li id=\"fn-5\"><strong>Forms and e-signature gating.<\/strong> SalesRabbit Help Center: <em>&ldquo;The Form Builder is only available for Pro and Enterprise accounts&rdquo;<\/em>; <em>&ldquo;Digital contracts are an add-on, only available to Pro\/Enterprise accounts.&rdquo;<\/em> Digital Contracts is priced at $13&ndash;20 per user per month on the pricing page. Retrieved June 13, 2026. <a href=\"https:\/\/help.salesrabbit.com\/hc\/en-us\/articles\/1500005851621-Digital-Contracts-Set-Up\" target=\"_blank\" rel=\"noopener\">help.salesrabbit.com &middot; Digital Contracts Set Up<\/a><\/li>\n      <li id=\"fn-6\"><strong>Territory model.<\/strong> SalesRabbit Help Center, &ldquo;5. Area Settings &amp; Assignments - Web&rdquo;: areas are drawn by hand and assigned to reps; the vendor advises <em>&ldquo;Avoid assigning entire cities; do assign 3-5 blocks per Area.&rdquo;<\/em> Retrieved June 13, 2026. <a href=\"https:\/\/help.salesrabbit.com\/hc\/en-us\/articles\/360003579274-5-Area-Settings-Assignments-Web\" target=\"_blank\" rel=\"noopener\">help.salesrabbit.com &middot; Area Settings<\/a><\/li>\n      <li id=\"fn-7\"><strong>Boundary files.<\/strong> SalesRabbit Help Center, &ldquo;Uploading Map Overlays&rdquo;: <em>&ldquo;the Map Overlays feature works with KML or KMZ formatted files&rdquo;<\/em> and <em>&ldquo;The max file size for a map overlay file is 10 MB&rdquo;<\/em>; overlays are display layers, not assignable territories. GeoJSON and Shapefile do not appear in SalesRabbit&rsquo;s public help documentation. Retrieved June 13, 2026. <a href=\"https:\/\/help.salesrabbit.com\/hc\/en-us\/articles\/115002967788-Uploading-Map-Overlays\" target=\"_blank\" rel=\"noopener\">help.salesrabbit.com &middot; Uploading Map Overlays<\/a><\/li>\n      <li id=\"fn-8\"><strong>Automation model.<\/strong> SalesRabbit&rsquo;s documented automation surfaces are status-triggered integration pushes, subscription webhooks, and Zapier&mdash;<em>&ldquo;Integrate - Automate - Innovate (Available on SalesRabbit pro plan only)&rdquo;<\/em>; no native automation builder appears in the public documentation. Retrieved June 13, 2026. <a href=\"https:\/\/help.salesrabbit.com\/hc\/en-us\/articles\/115010422148-Zapier-Overview\" target=\"_blank\" rel=\"noopener\">help.salesrabbit.com &middot; Zapier Overview<\/a> &middot; <a href=\"https:\/\/help.salesrabbit.com\/hc\/en-us\/articles\/4419164510231-Subscription-Webhooks\" target=\"_blank\" rel=\"noopener\">Subscription Webhooks<\/a><\/li>\n      <li id=\"fn-9\"><strong>Custom fields.<\/strong> SalesRabbit Help Center, &ldquo;4. Custom Lead Fields - Web&rdquo;: <em>&ldquo;Custom Lead Fields are only available on the Pro Plan&rdquo;<\/em>; <em>&ldquo;Text: Allows any text up to 30 characters long&rdquo;<\/em>; <em>&ldquo;Dropdown: Allows for 15 options up to 45 characters each.&rdquo;<\/em> Retrieved June 13, 2026. <a href=\"https:\/\/help.salesrabbit.com\/hc\/en-us\/articles\/360044141273-4-Custom-Lead-Fields-Web\" target=\"_blank\" rel=\"noopener\">help.salesrabbit.com &middot; Custom Lead Fields<\/a><\/li>\n      <li id=\"fn-10\"><strong>Analytics gating.<\/strong> SalesRabbit&rsquo;s pricing page: <em>&ldquo;Analytics included in SalesRabbit Team plan &bull; Analytics &amp; Gamification included in SalesRabbit Pro &amp; Enterprise plans.&rdquo;<\/em> Scheduled report delivery and business-intelligence integrations do not appear in the public documentation. Retrieved June 13, 2026. <a href=\"https:\/\/salesrabbit.com\/pricing\/\" target=\"_blank\" rel=\"noopener\">salesrabbit.com\/pricing<\/a><\/li>\n      <li id=\"fn-11\"><strong>Trial, implementation, and contracts.<\/strong> SalesRabbit&rsquo;s pricing FAQ: <em>&ldquo;We don&rsquo;t support a free trial of our paid plans, but we do offer a free version of our app: SalesRabbit Lite&rdquo;<\/em>; <em>&ldquo;Is an implementation package always required? &mdash; Yes&rdquo;<\/em>; <em>&ldquo;we do contracts from one to three years&rdquo;<\/em>; no mid-cycle refunds. Retrieved June 13, 2026. <a href=\"https:\/\/salesrabbit.com\/pricing\/\" target=\"_blank\" rel=\"noopener\">salesrabbit.com\/pricing<\/a><\/li>\n      <li id=\"fn-12\"><strong>Add-on pricing.<\/strong> SalesRabbit&rsquo;s pricing page lists DataGrid AI and Weather at $19 (annual) to $31 (monthly) per user per month, and Digital Contracts and Mover Leads at $13&ndash;20. The billing FAQ states add-ons <em>&ldquo;will apply to all users&rsquo; licenses.&rdquo;<\/em> Retrieved June 13, 2026. <a href=\"https:\/\/salesrabbit.com\/pricing\/\" target=\"_blank\" rel=\"noopener\">salesrabbit.com\/pricing<\/a> &middot; <a href=\"https:\/\/help.salesrabbit.com\/hc\/en-us\/articles\/115015305067-Billing-FAQ\" target=\"_blank\" rel=\"noopener\">Billing FAQ<\/a><\/li>\n      <li id=\"fn-13\"><strong>CRM connectors.<\/strong> SalesRabbit Help Center: the Salesforce and HubSpot integrations are <em>&ldquo;only available to customers on SalesRabbit&rsquo;s Pro or Enterprise membership plans&rdquo;<\/em>; Salesforce requires <em>&ldquo;Enterprise Edition, Unlimited Edition, Developer Edition, [or] Performance Edition&rdquo;<\/em>; connectors fire on form submission and lead-status change. Retrieved June 13, 2026. <a href=\"https:\/\/help.salesrabbit.com\/hc\/en-us\/articles\/1500005570041-Salesforce-Overview\" target=\"_blank\" rel=\"noopener\">help.salesrabbit.com &middot; Salesforce Overview<\/a><\/li>\n      <li id=\"fn-14\"><strong>DataGrid AI scope.<\/strong> SalesRabbit Help Center: <em>&ldquo;DataGrid AI information is only available on the mobile app and not on the web app&rdquo;<\/em>; <em>&ldquo;Each area can generate a total of 3,000 DataGrid AI pins.&rdquo;<\/em> SalesRabbit&rsquo;s DataGrid page describes the model as machine learning and, asked &ldquo;Is DataGrid AI an LLM (Large Language Model) like ChatGPT?&rdquo;, answers <em>&ldquo;No, LLMs are designed for language-related tasks such as text generation, comprehension, summarization, and translation.&rdquo;<\/em> Retrieved June 13, 2026. <a href=\"https:\/\/help.salesrabbit.com\/hc\/en-us\/articles\/360003579274-5-Area-Settings-Assignments-Web\" target=\"_blank\" rel=\"noopener\">help.salesrabbit.com &middot; Area Settings<\/a> &middot; <a href=\"https:\/\/salesrabbit.com\/datagrid\/\" target=\"_blank\" rel=\"noopener\">salesrabbit.com\/datagrid<\/a><\/li>\n    <\/ol>\n  <\/div>\n<\/section>\n\n<\/div>\n\n<script>\n\/* mapsly-vs-builder _base\/reveal.js\n *\n * Scroll-reveal + stagger initializer. Runs once per page inside the page's\n * IIFE (each per-page IIFE owns its own DOMContentLoaded handler \u00e2\u20ac\u201d the\n * assembler stitches them together, this file provides the base function).\n *\n * The assembler exposes the page's root class as `.mce-vs-salesrabbit` (a CSS\n * selector token like `.mce-vs-routeiq`). This file uses it via\n * `document.querySelector('.mce-vs-salesrabbit')` so it remains scoped to the\n * comparison page even when Elementor loads other widgets.\n *\n * Progressive enhancement: every `.rv` element is visible by default\n * (opacity 1, no transform). Only after JS runs do we add `.anim` to hide\n * the element, then `.on` when it scrolls into view. If JS fails, content\n * remains visible \u00e2\u20ac\u201d never let progressive enhancement turn into hidden text.\n *\/\n\n(function () {\n  var root = document.querySelector('.mce-vs-salesrabbit');\n  if (!root) return;\n  if (!('IntersectionObserver' in window)) return;\n\n  \/* Step 1 \u00e2\u20ac\u201d mark non-stagger elements as animatable *\/\n  var revealEls = root.querySelectorAll('.rv');\n  revealEls.forEach(function (el) {\n    el.classList.add('anim');\n  });\n\n  \/* Step 2 \u00e2\u20ac\u201d one-shot reveal when the element scrolls into view *\/\n  var obs = new IntersectionObserver(function (entries) {\n    entries.forEach(function (e) {\n      if (e.isIntersecting) {\n        e.target.classList.add('on');\n        obs.unobserve(e.target);\n      }\n    });\n  }, { threshold: 0.1 });\n  revealEls.forEach(function (el) { obs.observe(el); });\n\n  \/* Step 3 \u00e2\u20ac\u201d stagger reveal for grid containers\n   *\n   * Any grid block can register itself for stagger by adding a\n   * `data-stagger-child=\".child-selector\"` attribute. When the grid enters\n   * the viewport, children are revealed one at a time at 90 ms intervals.\n   *\n   * Default registrations (so blocks that don't set the attribute still\n   * stagger correctly):\n   *\/\n  var defaultPairs = [\n    { grid: '.cap-grid', child: '.cap' },\n    { grid: '.metrics-grid', child: '.metric' },\n    { grid: '.logos-row', child: '.logo-pill' },\n    { grid: '.quote-grid', child: '.quote-card' },\n    { grid: '.roi-tiles', child: '.roi-tile' },\n    { grid: '.footnotes-list', child: 'li' },\n    { grid: '.faq-list', child: '.faq-item' }\n  ];\n\n  var staggerObs = new IntersectionObserver(function (entries) {\n    entries.forEach(function (entry) {\n      if (!entry.isIntersecting) return;\n      var sel = entry.target.dataset.staggerChild;\n      if (!sel) return;\n      entry.target.querySelectorAll(sel).forEach(function (c, i) {\n        c.classList.add('anim');\n        setTimeout(function () {\n          c.classList.add('on');\n        }, i * 90);\n      });\n      staggerObs.unobserve(entry.target);\n    });\n  }, { threshold: 0.08 });\n\n  defaultPairs.forEach(function (pair) {\n    root.querySelectorAll(pair.grid).forEach(function (grid) {\n      if (!grid.dataset.staggerChild) grid.dataset.staggerChild = pair.child;\n      grid.querySelectorAll(pair.child).forEach(function (c) {\n        c.classList.add('anim');\n      });\n      staggerObs.observe(grid);\n    });\n  });\n\n  \/* Step 4 \u00e2\u20ac\u201d safety net\n   *\n   * If a user scrolls past content faster than the observer fires (rare but\n   * possible on slow first paint), force-reveal any element still hidden\n   * after 2.5 s. Better visible than permanently invisible.\n   *\/\n  setTimeout(function () {\n    root.querySelectorAll('.anim:not(.on)').forEach(function (el) {\n      el.classList.add('on');\n    });\n  }, 2500);\n})();\n\n\n\/* rail-floating-nav\/script.js\n * -----------------------------------------------------------------------------\n * Companion JS for the rail-floating-nav block. Self-contained: a vs-page ships\n * this block + calls mceVsRailInit(root, {trigger_id}) once from its page IIFE,\n * and gets the whole menu behaviour \u00e2\u20ac\u201d no per-page scroll-spy \/ sectionToHref \/\n * smooth-scroll \/ URL-encoding to hand-write.\n *\n * Exposes two helpers on window:\n *\n * \u00e2\u201d\u0152\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u0090\n * \u00e2\u201d\u201a window.mceVsRailInit(scope, options)                                      \u00e2\u201d\u201a\n * \u00e2\u201d\u201a   scope: HTMLElement \u00e2\u20ac\u201d the page wrapper (e.g. .mce-vs-portatour root)      \u00e2\u201d\u201a\n * \u00e2\u201d\u201a   options:                                                                \u00e2\u201d\u201a\n * \u00e2\u201d\u201a     rail_selector \u00e2\u20ac\u201d selector for the rail aside, scoped to `scope`        \u00e2\u201d\u201a\n * \u00e2\u201d\u201a                     (default \".features-rail-aside\")                      \u00e2\u201d\u201a\n * \u00e2\u201d\u201a     trigger_id    \u00e2\u20ac\u201d id of the section whose top edge fades the rail in    \u00e2\u201d\u201a\n * \u00e2\u201d\u201a                     (default \"vpt-snapshot\"; rail .visible when top<=80)   \u00e2\u201d\u201a\n * \u00e2\u201d\u201a   Does four things:                                                       \u00e2\u201d\u201a\n * \u00e2\u201d\u201a     1. Visibility \u00e2\u20ac\u201d fades the desktop rail in at the trigger section.     \u00e2\u201d\u201a\n * \u00e2\u201d\u201a     2. Scroll-spy \u00e2\u20ac\u201d marks the active section link .active in BOTH the     \u00e2\u201d\u201a\n * \u00e2\u201d\u201a        desktop rail and the mobile nav-bar. The section list is derived   \u00e2\u201d\u201a\n * \u00e2\u201d\u201a        from the rail's own #anchors \u00e2\u20ac\u201d no per-page sectionToHref map.      \u00e2\u201d\u201a\n * \u00e2\u201d\u201a     3. Smooth-scroll \u00e2\u20ac\u201d in-page anchor clicks scroll smoothly, offset by   \u00e2\u201d\u201a\n * \u00e2\u201d\u201a        the sticky mobile nav-bar height when it is showing.               \u00e2\u201d\u201a\n * \u00e2\u201d\u201a     4. AI links \u00e2\u20ac\u201d builds the ChatGPT\/Claude\/Gemini deep-links from the    \u00e2\u201d\u201a\n * \u00e2\u201d\u201a        picker's data-competitor + data-page-url (constant prompt below).  \u00e2\u201d\u201a\n * \u00e2\u201d\u201a                                                                          \u00e2\u201d\u201a\n * \u00e2\u201d\u201a window.mceVsAiPicker(button) \u00e2\u20ac\u201d toggles the picker popover (wired in       \u00e2\u201d\u201a\n * \u00e2\u201d\u201a   template.html via onclick).                                             \u00e2\u201d\u201a\n * \u00e2\u201d\u201d\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u20ac\u00e2\u201d\u02dc\n *\n * Usage from a page-level IIFE:\n *   (function(){\n *     var root = document.querySelector('.mce-vs-portatour');\n *     if (root && window.mceVsRailInit) window.mceVsRailInit(root, { trigger_id: 'vs-portatour-snapshot' });\n *   })();\n * -----------------------------------------------------------------------------\n *\/\n(function(){\n  'use strict';\n\n  \/\/ ---- \"Ask your AI\" picker toggle -------------------------------------------\n  \/\/ Opens\/closes the deep-link list. Reads aria-controls off the button so it\n  \/\/ works regardless of the picker's id (defaults to \"rail-ai-picker\").\n  window.mceVsAiPicker = function(btn){\n    if (!btn) return;\n    var pickerId = btn.getAttribute('aria-controls') || 'rail-ai-picker';\n    var picker = document.getElementById(pickerId);\n    if (!picker) return;\n    var open = !picker.hasAttribute('hidden');\n    if (open) {\n      picker.setAttribute('hidden', '');\n      btn.setAttribute('aria-expanded', 'false');\n    } else {\n      picker.removeAttribute('hidden');\n      btn.setAttribute('aria-expanded', 'true');\n    }\n  };\n\n  \/\/ Single document-level click-outside handler \u00e2\u20ac\u201d closes any open picker whose\n  \/\/ button\/menu don't contain the click target.\n  document.addEventListener('click', function(e){\n    document.querySelectorAll('.rail-ai-picker').forEach(function(picker){\n      if (picker.hasAttribute('hidden')) return;\n      var btn = document.querySelector('[aria-controls=\"' + picker.id + '\"]');\n      if (!btn) return;\n      if (picker.contains(e.target) || btn.contains(e.target)) return;\n      picker.setAttribute('hidden', '');\n      btn.setAttribute('aria-expanded', 'false');\n    });\n  });\n\n  \/\/ ---- AI deep-link builder --------------------------------------------------\n  \/\/ Providers + prompt are CONSTANTS \u00e2\u20ac\u201d identical on every vs-page. Only the\n  \/\/ competitor name + page URL vary, read from the picker's data-* attributes,\n  \/\/ so there is never a hand-encoded URL to drift. Note the per-provider query\n  \/\/ param: ChatGPT\/Claude use ?q=, Gemini uses \/app?text=.\n  var AI_PROVIDERS = {\n    chatgpt: 'https:\/\/chatgpt.com\/?q=',\n    claude:  'https:\/\/claude.ai\/new?q=',\n    gemini:  'https:\/\/gemini.google.com\/app?text='\n  };\n  function buildAiLinks(scope){\n    scope.querySelectorAll('.rail-ai-picker').forEach(function(picker){\n      var competitor = picker.getAttribute('data-competitor');\n      var pageUrl    = picker.getAttribute('data-page-url');\n      if (!competitor || !pageUrl) return;\n      var prompt = \"I'm deciding between Mapsly and \" + competitor +\n        \" for my field sales team. I've read \" + pageUrl +\n        \" \u00e2\u20ac\u201d can you summarise the real differences and which I should pick?\";\n      var q = encodeURIComponent(prompt);\n      picker.querySelectorAll('.rail-ai-opt').forEach(function(a){\n        var base = AI_PROVIDERS[a.getAttribute('data-ai-provider')];\n        if (base) a.setAttribute('href', base + q);\n      });\n    });\n  }\n\n  \/\/ ---- Rail visibility + scroll-spy + smooth-scroll --------------------------\n  window.mceVsRailInit = function(scope, options){\n    if (!scope) return;\n    options = options || {};\n    var railSelector = options.rail_selector || '.features-rail-aside';\n    var triggerId    = options.trigger_id    || 'vpt-snapshot';\n\n    var rail    = scope.querySelector(railSelector);\n    var navbar  = scope.querySelector('.features-nav-bar');\n    var trigger = document.getElementById(triggerId);\n\n    \/\/ Build the AI deep-links up front (independent of the rail\/trigger).\n    buildAiLinks(scope);\n\n    \/\/ Section anchors, derived from the rail's own nav links (deduped, in order).\n    var sections = [];\n    var seen = {};\n    scope.querySelectorAll('.features-nav-list a[href^=\"#\"]').forEach(function(a){\n      var id = a.getAttribute('href').slice(1);\n      if (!id || seen[id]) return;\n      var el = document.getElementById(id);\n      if (!el) return;\n      seen[id] = true;\n      sections.push({ id: id, el: el });\n    });\n\n    var currentId = null;\n    function updateActive(){\n      if (!sections.length) return;\n      var mid = window.innerHeight \/ 2;\n      var hitId = null;\n      for (var i = 0; i < sections.length; i++){\n        var r = sections[i].el.getBoundingClientRect();\n        if (r.top <= mid && r.bottom >= mid){ hitId = sections[i].id; break; }\n      }\n      if (hitId === currentId) return;\n      currentId = hitId;\n      scope.querySelectorAll('.features-nav-list a').forEach(function(l){ l.classList.remove('active'); });\n      if (hitId){\n        scope.querySelectorAll('.features-nav-list a[href=\"#' + hitId + '\"]').forEach(function(l){ l.classList.add('active'); });\n      }\n    }\n\n    function applyVisibility(){\n      if (!rail || !trigger) return;\n      \/\/ Visible once the trigger section's top edge reaches the top of the\n      \/\/ viewport (80px margin so the rail catches as the user lands on it),\n      \/\/ hidden again if the user scrolls back up to the hero.\n      rail.classList.toggle('visible', trigger.getBoundingClientRect().top <= 80);\n    }\n\n    var rafPending = false;\n    function onScroll(){\n      if (rafPending) return;\n      rafPending = true;\n      requestAnimationFrame(function(){\n        rafPending = false;\n        applyVisibility();\n        updateActive();\n      });\n    }\n    window.addEventListener('scroll', onScroll, {passive: true});\n    window.addEventListener('resize', onScroll, {passive: true});\n    onScroll();\n\n    \/\/ Smooth-scroll for in-page anchors (rail, nav-bar, and any other #links).\n    \/\/ Offsets by the sticky mobile nav-bar's height when it is on screen so the\n    \/\/ section heading doesn't land under it.\n    scope.querySelectorAll('a[href^=\"#\"]').forEach(function(link){\n      link.addEventListener('click', function(e){\n        var href = this.getAttribute('href');\n        if (!href || href.length < 2) return;\n        var target = document.getElementById(href.slice(1));\n        if (!target) return;\n        e.preventDefault();\n        var offset = 24;\n        if (navbar && getComputedStyle(navbar).display !== 'none') offset += navbar.offsetHeight;\n        var top = target.getBoundingClientRect().top + window.pageYOffset - offset;\n        window.scrollTo({ top: top, behavior: 'smooth' });\n      });\n    });\n  };\n})();\n\n\n(function () {\n  var root = document.querySelector('.mce-vs-salesrabbit');\n  if (!root) return;\n  if (window.mceVsRailInit) window.mceVsRailInit(root, { trigger_id: 'vs-salesrabbit-snapshot' });\n  window.mceVsSalesrabbitFaq = function (btn) {\n    var item = btn.closest('.faq-item');\n    var was = item.classList.contains('open');\n    root.querySelectorAll('.faq-item').forEach(function (i) { i.classList.remove('open'); });\n    if (!was) item.classList.add('open');\n  };\n})();\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>vs More Than a Sales\u00a0App: Mapsly Runs the\u00a0Field. SalesRabbit is the canvassing app; Mapsly is the platform that routes, automates, and scales the whole field team. Try Mapsly free Book a call Snapshot Model Platform ROI Try free Book a call Ask your AI ChatGPT Claude Gemini Snapshot Model Platform ROI Multi-rep, multi-day routing in [&hellip;]<\/p>\n","protected":false},"featured_media":0,"template":"elementor_header_footer","meta":{"_acf_changed":false},"class_list":["post-31762","alternatives","type-alternatives","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Mapsly vs SalesRabbit - Mapsly<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/mapsly.com\/de\/alternatives\/mapsly-vs-salesrabbit\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Mapsly vs SalesRabbit - Mapsly\" \/>\n<meta property=\"og:description\" content=\"vs More Than a Sales\u00a0App: Mapsly Runs the\u00a0Field. SalesRabbit is the canvassing app; Mapsly is the platform that routes, automates, and scales the whole field team. Try Mapsly free Book a call Snapshot Model Platform ROI Try free Book a call Ask your AI ChatGPT Claude Gemini Snapshot Model Platform ROI Multi-rep, multi-day routing in [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/mapsly.com\/de\/alternatives\/mapsly-vs-salesrabbit\/\" \/>\n<meta property=\"og:site_name\" content=\"Mapsly\" \/>\n<meta property=\"og:image\" content=\"https:\/\/mapsly.com\/wp-content\/uploads\/2026\/06\/mapsly-tight.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data1\" content=\"13\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/mapsly.com\\\/alternatives\\\/mapsly-vs-salesrabbit\\\/\",\"url\":\"https:\\\/\\\/mapsly.com\\\/alternatives\\\/mapsly-vs-salesrabbit\\\/\",\"name\":\"Mapsly vs SalesRabbit - Mapsly\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/mapsly.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/mapsly.com\\\/alternatives\\\/mapsly-vs-salesrabbit\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/mapsly.com\\\/alternatives\\\/mapsly-vs-salesrabbit\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/mapsly.com\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/mapsly-tight.png\",\"datePublished\":\"2026-07-16T14:35:19+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/mapsly.com\\\/alternatives\\\/mapsly-vs-salesrabbit\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/mapsly.com\\\/alternatives\\\/mapsly-vs-salesrabbit\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/mapsly.com\\\/alternatives\\\/mapsly-vs-salesrabbit\\\/#primaryimage\",\"url\":\"https:\\\/\\\/mapsly.com\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/mapsly-tight.png\",\"contentUrl\":\"https:\\\/\\\/mapsly.com\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/mapsly-tight.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/mapsly.com\\\/alternatives\\\/mapsly-vs-salesrabbit\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/mapsly.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mapsly vs SalesRabbit\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/mapsly.com\\\/#website\",\"url\":\"https:\\\/\\\/mapsly.com\\\/\",\"name\":\"Mapsly\",\"description\":\"The Ultimate CRM Map\",\"publisher\":{\"@id\":\"https:\\\/\\\/mapsly.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/mapsly.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/mapsly.com\\\/#organization\",\"name\":\"Mapsly\",\"url\":\"https:\\\/\\\/mapsly.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/mapsly.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/mapsly.com\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/Mapsly-Logo-2x-BIG.png\",\"contentUrl\":\"https:\\\/\\\/mapsly.com\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/Mapsly-Logo-2x-BIG.png\",\"width\":280,\"height\":85,\"caption\":\"Mapsly\"},\"image\":{\"@id\":\"https:\\\/\\\/mapsly.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Mapsly gegen SalesRabbit - Mapsly","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/mapsly.com\/de\/alternatives\/mapsly-vs-salesrabbit\/","og_locale":"de_DE","og_type":"article","og_title":"Mapsly vs SalesRabbit - Mapsly","og_description":"vs More Than a Sales\u00a0App: Mapsly Runs the\u00a0Field. SalesRabbit is the canvassing app; Mapsly is the platform that routes, automates, and scales the whole field team. Try Mapsly free Book a call Snapshot Model Platform ROI Try free Book a call Ask your AI ChatGPT Claude Gemini Snapshot Model Platform ROI Multi-rep, multi-day routing in [&hellip;]","og_url":"https:\/\/mapsly.com\/de\/alternatives\/mapsly-vs-salesrabbit\/","og_site_name":"Mapsly","og_image":[{"url":"https:\/\/mapsly.com\/wp-content\/uploads\/2026\/06\/mapsly-tight.png","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Gesch\u00e4tzte Lesezeit":"13\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/mapsly.com\/alternatives\/mapsly-vs-salesrabbit\/","url":"https:\/\/mapsly.com\/alternatives\/mapsly-vs-salesrabbit\/","name":"Mapsly gegen SalesRabbit - Mapsly","isPartOf":{"@id":"https:\/\/mapsly.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/mapsly.com\/alternatives\/mapsly-vs-salesrabbit\/#primaryimage"},"image":{"@id":"https:\/\/mapsly.com\/alternatives\/mapsly-vs-salesrabbit\/#primaryimage"},"thumbnailUrl":"https:\/\/mapsly.com\/wp-content\/uploads\/2026\/06\/mapsly-tight.png","datePublished":"2026-07-16T14:35:19+00:00","breadcrumb":{"@id":"https:\/\/mapsly.com\/alternatives\/mapsly-vs-salesrabbit\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/mapsly.com\/alternatives\/mapsly-vs-salesrabbit\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/mapsly.com\/alternatives\/mapsly-vs-salesrabbit\/#primaryimage","url":"https:\/\/mapsly.com\/wp-content\/uploads\/2026\/06\/mapsly-tight.png","contentUrl":"https:\/\/mapsly.com\/wp-content\/uploads\/2026\/06\/mapsly-tight.png"},{"@type":"BreadcrumbList","@id":"https:\/\/mapsly.com\/alternatives\/mapsly-vs-salesrabbit\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/mapsly.com\/"},{"@type":"ListItem","position":2,"name":"Mapsly vs SalesRabbit"}]},{"@type":"WebSite","@id":"https:\/\/mapsly.com\/#website","url":"https:\/\/mapsly.com\/","name":"Mapsly","description":"Die ultimative CRM-Karte","publisher":{"@id":"https:\/\/mapsly.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/mapsly.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/mapsly.com\/#organization","name":"Mapsly","url":"https:\/\/mapsly.com\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/mapsly.com\/#\/schema\/logo\/image\/","url":"https:\/\/mapsly.com\/wp-content\/uploads\/2025\/06\/Mapsly-Logo-2x-BIG.png","contentUrl":"https:\/\/mapsly.com\/wp-content\/uploads\/2025\/06\/Mapsly-Logo-2x-BIG.png","width":280,"height":85,"caption":"Mapsly"},"image":{"@id":"https:\/\/mapsly.com\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/mapsly.com\/de\/wp-json\/wp\/v2\/alternatives\/31762","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mapsly.com\/de\/wp-json\/wp\/v2\/alternatives"}],"about":[{"href":"https:\/\/mapsly.com\/de\/wp-json\/wp\/v2\/types\/alternatives"}],"version-history":[{"count":4,"href":"https:\/\/mapsly.com\/de\/wp-json\/wp\/v2\/alternatives\/31762\/revisions"}],"predecessor-version":[{"id":31782,"href":"https:\/\/mapsly.com\/de\/wp-json\/wp\/v2\/alternatives\/31762\/revisions\/31782"}],"wp:attachment":[{"href":"https:\/\/mapsly.com\/de\/wp-json\/wp\/v2\/media?parent=31762"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}