Retail and Hospitality
Trusted by



Rethink your indoor customer experience with data and tools provided by real-time indoor positioning.
Attract more customers and make spaces more profitable and safe. With our indoor positioning and navigation systems powered by Bluetooth Low Energy, you unlock unprecedented opportunities for your omnichannel customer experience.
Our product delivers excellent performance and accuracy, whether your space has high ceilings, thick walls, or high crowding. We accomplish this with our advanced signal filtering algorithm without significantly increasing beacon density.
What you’ll get
SYSTEM INTEGRATION
Use location data collected in any external system (ERP, MES, WMS), thanks to simple integration via APIs.
SEAMLESS INDOOR AND OUTDOOR POSITIONING
Switch smoothly from indoor to outdoor maps when the user or the asset transits into an outdoor area.
GEO-REFERENCED POSITIONING DATA
Collect, aggregate and store positions to provide analytics and insights.
Enrich customer experience
Drive targeted traffic in-store with proximity marketing features, engage customers and gain new insights for your marketing campaigns.
Proximity-based notifications
Throw an event or notifications when a customer enters an area.
Navigation
Help customers reach a store or point of interest within a store using a map with indoor GPS accurate up to 1.5m (3ft).
Custom paths
Let your customers create a shopping list and provide custom paths to reach products easily and quickly.
Retargeting
See which products customers interact with and retarget them with custom personalized messages.
Redesign and optimize use of space
Redesign spaces to delight your customers and boost sales by leveraging real-time data up to shelf level.
Real-time crowd monitoring
Collect real-time data about your customers to gain insights and predict queues.
Increase security and provide emergency support
Mitigate risks by enhancing security and providing more informed emergency support thanks to RTLS.
Facility services control
Improve control over cleaning and maintenance activities, monitoring presence and time spent by the staff.
People tracking
Track employees and authorized staff members for service purposes, restricted areas access control and security.
Real Time Monitoring
Locate employees or critical assets to respond to emergencies and provide rapid response.
See case studies
Si è verificato un errore nell'elaborarazione del modello.
The following has evaluated to null or missing: ==> friendlyURLs[themeDisplay.getLanguageId()] [in template "20100#20127#48947" at line 6, column 85] ---- Tip: It's the final [] step that caused this error, not those before it. ---- Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${friendlyURLs[themeDisplay.getLangua... [in template "20100#20127#48947" at line 6, column 83] ----
1<div class="nextome-case-study-${randomNamespace}">
2 <div class="nextome-body1">CASE STUDY</div>
3 <div class="nextome-heading4b"><#if (NxtNameCaseStudy.getData())??>${NxtNameCaseStudy.getData()}</#if></div>
4 <div class="nextome-subtitle1sb"><#if (NxtDescCaseStudy.getData())??>${NxtDescCaseStudy.getData()}</#if></div>
5 <div class="nextome-button1">
6 <a class="nextome-txt-primary-active" data-senna-off="true" href="${friendlyURLs[themeDisplay.getLanguageId()]?replace('/web/guest', '')!""}">
7 <span>READ MORE</span>
8 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
9 <path d="M12 4L10.59 5.41L16.17 11H4V13H16.17L10.59 18.59L12 20L20 12L12 4Z" fill="#05D9AA"></path>
10 </svg>
11 </a>
12 </div>
13 <div class="nextome-case-study-image">
14 <#if (NxtImgCaseStudy.getData())?? && NxtImgCaseStudy.getData() != "">
15 <img alt="${NxtImgCaseStudy.getAttribute("alt")}" data-fileentryid="${NxtImgCaseStudy.getAttribute("fileEntryId")}" src="${NxtImgCaseStudy.getData()}" />
16 </#if>
17 </div>
18</div>
19<style>
20 .nextome-case-study-${randomNamespace} {
21 display: flex;
22 flex-direction: column;
23 align-items: flex-start;
24 padding: clamp(1rem, 2.5vw, 2rem);
25 background: #FFFFFF;
26 box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);
27 border-radius: 30px;
28 margin: clamp(.5rem, 2vw, 1.5rem);
29 }
30
31 .nextome-case-study-${randomNamespace} div:not(:last-child) {
32 margin-bottom: clamp(1rem, 3vw, 2rem);
33 }
34
35 .nextome-case-study-${randomNamespace} div:nth-child(2) {
36 margin-bottom: .5rem;
37 }
38
39 .nextome-case-study-${randomNamespace} img {
40 border-radius: 1.5rem;
41 aspect-ratio: 5 / 4;
42 object-fit: cover;
43 }
44
45 .nextome-case-study-${randomNamespace} a:hover {
46 text-decoration: none;
47 color: #10303b;
48 }
49
50 .nextome-case-study-${randomNamespace} a:hover svg path {
51 fill: #10303b;
52 }
53
54 .nextome-case-study-${randomNamespace} .nextome-heading4b {
55 display: -webkit-box;
56 -webkit-line-clamp: 1;
57 -webkit-box-orient: vertical;
58 overflow: hidden;
59 }
60
61 .nextome-case-study-${randomNamespace} .nextome-subtitle1sb {
62 min-height: clamp(50px, 15vw, 116px);
63 display: -webkit-box;
64 -webkit-line-clamp: 4;
65 -webkit-box-orient: vertical;
66 overflow: hidden;
67 }
68</style>
Si è verificato un errore nell'elaborarazione del modello.
The following has evaluated to null or missing: ==> friendlyURLs[themeDisplay.getLanguageId()] [in template "20100#20127#48947" at line 6, column 85] ---- Tip: It's the final [] step that caused this error, not those before it. ---- Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${friendlyURLs[themeDisplay.getLangua... [in template "20100#20127#48947" at line 6, column 83] ----
1<div class="nextome-case-study-${randomNamespace}">
2 <div class="nextome-body1">CASE STUDY</div>
3 <div class="nextome-heading4b"><#if (NxtNameCaseStudy.getData())??>${NxtNameCaseStudy.getData()}</#if></div>
4 <div class="nextome-subtitle1sb"><#if (NxtDescCaseStudy.getData())??>${NxtDescCaseStudy.getData()}</#if></div>
5 <div class="nextome-button1">
6 <a class="nextome-txt-primary-active" data-senna-off="true" href="${friendlyURLs[themeDisplay.getLanguageId()]?replace('/web/guest', '')!""}">
7 <span>READ MORE</span>
8 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
9 <path d="M12 4L10.59 5.41L16.17 11H4V13H16.17L10.59 18.59L12 20L20 12L12 4Z" fill="#05D9AA"></path>
10 </svg>
11 </a>
12 </div>
13 <div class="nextome-case-study-image">
14 <#if (NxtImgCaseStudy.getData())?? && NxtImgCaseStudy.getData() != "">
15 <img alt="${NxtImgCaseStudy.getAttribute("alt")}" data-fileentryid="${NxtImgCaseStudy.getAttribute("fileEntryId")}" src="${NxtImgCaseStudy.getData()}" />
16 </#if>
17 </div>
18</div>
19<style>
20 .nextome-case-study-${randomNamespace} {
21 display: flex;
22 flex-direction: column;
23 align-items: flex-start;
24 padding: clamp(1rem, 2.5vw, 2rem);
25 background: #FFFFFF;
26 box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);
27 border-radius: 30px;
28 margin: clamp(.5rem, 2vw, 1.5rem);
29 }
30
31 .nextome-case-study-${randomNamespace} div:not(:last-child) {
32 margin-bottom: clamp(1rem, 3vw, 2rem);
33 }
34
35 .nextome-case-study-${randomNamespace} div:nth-child(2) {
36 margin-bottom: .5rem;
37 }
38
39 .nextome-case-study-${randomNamespace} img {
40 border-radius: 1.5rem;
41 aspect-ratio: 5 / 4;
42 object-fit: cover;
43 }
44
45 .nextome-case-study-${randomNamespace} a:hover {
46 text-decoration: none;
47 color: #10303b;
48 }
49
50 .nextome-case-study-${randomNamespace} a:hover svg path {
51 fill: #10303b;
52 }
53
54 .nextome-case-study-${randomNamespace} .nextome-heading4b {
55 display: -webkit-box;
56 -webkit-line-clamp: 1;
57 -webkit-box-orient: vertical;
58 overflow: hidden;
59 }
60
61 .nextome-case-study-${randomNamespace} .nextome-subtitle1sb {
62 min-height: clamp(50px, 15vw, 116px);
63 display: -webkit-box;
64 -webkit-line-clamp: 4;
65 -webkit-box-orient: vertical;
66 overflow: hidden;
67 }
68</style>
Si è verificato un errore nell'elaborarazione del modello.
The following has evaluated to null or missing: ==> friendlyURLs[themeDisplay.getLanguageId()] [in template "20100#20127#48947" at line 6, column 85] ---- Tip: It's the final [] step that caused this error, not those before it. ---- Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${friendlyURLs[themeDisplay.getLangua... [in template "20100#20127#48947" at line 6, column 83] ----
1<div class="nextome-case-study-${randomNamespace}">
2 <div class="nextome-body1">CASE STUDY</div>
3 <div class="nextome-heading4b"><#if (NxtNameCaseStudy.getData())??>${NxtNameCaseStudy.getData()}</#if></div>
4 <div class="nextome-subtitle1sb"><#if (NxtDescCaseStudy.getData())??>${NxtDescCaseStudy.getData()}</#if></div>
5 <div class="nextome-button1">
6 <a class="nextome-txt-primary-active" data-senna-off="true" href="${friendlyURLs[themeDisplay.getLanguageId()]?replace('/web/guest', '')!""}">
7 <span>READ MORE</span>
8 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
9 <path d="M12 4L10.59 5.41L16.17 11H4V13H16.17L10.59 18.59L12 20L20 12L12 4Z" fill="#05D9AA"></path>
10 </svg>
11 </a>
12 </div>
13 <div class="nextome-case-study-image">
14 <#if (NxtImgCaseStudy.getData())?? && NxtImgCaseStudy.getData() != "">
15 <img alt="${NxtImgCaseStudy.getAttribute("alt")}" data-fileentryid="${NxtImgCaseStudy.getAttribute("fileEntryId")}" src="${NxtImgCaseStudy.getData()}" />
16 </#if>
17 </div>
18</div>
19<style>
20 .nextome-case-study-${randomNamespace} {
21 display: flex;
22 flex-direction: column;
23 align-items: flex-start;
24 padding: clamp(1rem, 2.5vw, 2rem);
25 background: #FFFFFF;
26 box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);
27 border-radius: 30px;
28 margin: clamp(.5rem, 2vw, 1.5rem);
29 }
30
31 .nextome-case-study-${randomNamespace} div:not(:last-child) {
32 margin-bottom: clamp(1rem, 3vw, 2rem);
33 }
34
35 .nextome-case-study-${randomNamespace} div:nth-child(2) {
36 margin-bottom: .5rem;
37 }
38
39 .nextome-case-study-${randomNamespace} img {
40 border-radius: 1.5rem;
41 aspect-ratio: 5 / 4;
42 object-fit: cover;
43 }
44
45 .nextome-case-study-${randomNamespace} a:hover {
46 text-decoration: none;
47 color: #10303b;
48 }
49
50 .nextome-case-study-${randomNamespace} a:hover svg path {
51 fill: #10303b;
52 }
53
54 .nextome-case-study-${randomNamespace} .nextome-heading4b {
55 display: -webkit-box;
56 -webkit-line-clamp: 1;
57 -webkit-box-orient: vertical;
58 overflow: hidden;
59 }
60
61 .nextome-case-study-${randomNamespace} .nextome-subtitle1sb {
62 min-height: clamp(50px, 15vw, 116px);
63 display: -webkit-box;
64 -webkit-line-clamp: 4;
65 -webkit-box-orient: vertical;
66 overflow: hidden;
67 }
68</style>
Ciao Be the first to know the latest news about indoor positioning.
Sign up for our newsletter and receive insights and opportunities on this growing market.
We create state-of-the-art indoor navigation and positioning systems that make spaces smarter and unlock new creative opportunities for companies, developers and people.
Offices
Via Soldato di Leo, 1/D
70014 Conversano - Italy
70014 Conversano - Italy
Email info@nextome.com
Phone +39 080 880 6915
Phone +39 080 880 6915
Nextome has adopted the "231 Organisation Model" pursuant to Legislative Decree 231/2001
© 2025 Nextome srl - All Rights Reserved.