Format
Si è verificato un errore nell'elaborarazione del modello.
The following has evaluated to null or missing:
==> themeDisplay.getThemeSetting("news-vocabulary-id")  [in template "51632#51678#43587" at line 22, column 20]

----
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: vocabularyId = themeDisplay.getThemeS...  [in template "51632#51678#43587" at line 22, column 5]
----
1<#--sella social macro --> 
2<#include "${templatesPath}/SOCIAL-SHARE-MACRO" /> 
3 
4<#assign originalLocale = locale> 
5<#setting locale = 'en_US'> 
6<#assign date = .vars['reserved-article-display-date'].data/> 
7<#assign date = date?datetime("EEE, d MMM yyyy HH:mm:ss Z") /> 
8<#setting locale = originalLocale> 
9<#assign dateTimeFormat = languageUtil.get(locale, "HH:mm, dd MMM yyyy")> 
10 
11 
12<#assign 
13    articleId = .vars['reserved-article-id'].data 
14    journalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") 
15    assetEntryService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") 
16    ja = journalService.fetchLatestArticle(themeDisplay.getScopeGroupId(), articleId, 0) 
17    ae = assetEntryService.fetchEntry("com.liferay.journal.model.JournalArticle", ja.getResourcePrimKey()) 
18    title = .vars['reserved-article-title'].data 
19    jaAbstract = .vars['reserved-article-description'].data 
20    absoluteURL = themeDisplay.getPortalURL() + themeDisplay.getURLCurrent() 
21    altBigDetailImage = "" 
22    vocabularyId = themeDisplay.getThemeSetting("news-vocabulary-id")?number 
23    category = sella_tool.getCategoryFromVocabularyId(ae.getCategories(), vocabularyId, locale) 
24/> 
25 
26<#if !vocabularyIdLive?? && !themeDisplay.getThemeSetting("news-vocabulary-id-live")?? > 
27    <#assign vocabularyIdLive = 52307 /> 
28<#else> 
29    <#assign vocabularyIdLive = themeDisplay.getThemeSetting("news-vocabulary-id-live")?number /> 
30</#if> 
31 
32<#if category==""> 
33    <#assign category = sella_tool.getCategoryFromVocabularyId(ae.getCategories(), vocabularyIdLive , locale)  /> 
34</#if> 
35 
36<#-- ja title --> 
37<#if titleShown?? && titleShown.getData()?has_content> 
38    <#assign title = titleShown.getData() /> 
39</#if> 
40 
41<#if HeroImage.getAttribute("fileEntryId")?? > 
42    <#assign socialImg = themeDisplay.getPortalURL() + sella_tool.getAdaptiveMediaSrc("800-x-533-px",HeroImage.getAttribute("fileEntryId")?number,HeroImage.name) /> 
43<#else> 
44    <#assign socialImg = ""> 
45</#if> 
46 
47<@shareContent title="${title}" summary="${jaAbstract}" detailURL="${absoluteURL}" imageURL="${socialImg}"/> 
48 
49 
50 
51<article class="article-detail article-detail--has-img"> 
52  <#-- Info + Social --> 
53  <div class="container"> 
54    <div class="row"> 
55      <div class="col-md-10 offset-md-1"> 
56        <div class="article-detail__intro"> 
57          <div class="row"> 
58            <div class="col-lg-8"> 
59              <#-- Categoria e data --> 
60              <div class="d-flex"> 
61                <#if category?? && category?has_content> 
62                  <div class="article-detail__category">${category}</div> 
63                </#if> 
64                <div class="article-detail__date">${date?string(dateTimeFormat)}</div> 
65              </div> 
66              <#-- Titolo --> 
67              <h1 class="article-detail__title">${title}</h1> 
68              <#-- Sottotitolo --> 
69              <#if jaAbstract?has_content> 
70                <h2 class="article-detail__subject">${jaAbstract}</h2> 
71              </#if> 
72 
73            </div> 
74          </div> 
75          <div class="row"> 
76            <div class="col-12"> 
77              <div class="article-detail__button d-flex"> 
78                <#-- Share button --> 
79                <div class="sella-share clearfix"> 
80                  <div class="sella-share__icon sella-share__icon--share"> 
81                    <svg class="ico-svg"> 
82                      <use xlink:href="${themeDisplay.getPathThemeImages()}/assets/images/icons.svg#share-alt"></use> 
83                    </svg> 
84                  </div> 
85                  <div class="sella-share__text">Condividi</div> 
86                  <ul> 
87                    <li> 
88                      <a href="http://www.facebook.com/sharer.php?u=${absoluteURL}" title="Facebook" class="sella-share__icon sella-share__icon--fb"> 
89                        <svg class="ico-svg"> 
90                          <use xlink:href="${themeDisplay.getPathThemeImages()}/assets/images/icons.svg#facebook-f"></use> 
91                        </svg> 
92                      </a> 
93                    </li> 
94                    <li> 
95                      <a href="https://twitter.com/home?status=${absoluteURL}" title="Twitter" class="sella-share__icon sella-share__icon--twitter"> 
96                        <svg class="ico-svg"> 
97                          <use xlink:href="${themeDisplay.getPathThemeImages()}/assets/images/icons.svg#twitter"></use> 
98                        </svg> 
99                      </a> 
100                    </li> 
101                    <li> 
102						<#assign escapedTitle = htmlUtil.escape(htmlParserUtil.extractText(title)) /> 
103						<#assign escapedAbstract = htmlUtil.escape(htmlParserUtil.extractText(jaAbstract)) /> 
104 
105                      	<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=${absoluteURL}&amp;title=${escapedTitle}&amp;summary=${escapedAbstract}&amp;source=" title="LinkedIn" class="sella-share__icon sella-share__icon--linkedin"> 
106                        	<svg class="ico-svg"> 
107                          		<use xlink:href="${themeDisplay.getPathThemeImages()}/assets/images/icons.svg#linkedin-in"></use> 
108                        	</svg> 
109                      	</a> 
110                    </li> 
111                     <li> 
112                      <a href="https://api.whatsapp.com/send?text=${urlCodec.encodeURL(absoluteURL)}" title="WahtsApp" class="sella-share__icon sella-share__icon--whatsapp"> 
113                        <svg class="ico-svg"> 
114                          <use xlink:href="${themeDisplay.getPathThemeImages()}/assets/images/icons.svg#whatsapp"></use> 
115                        </svg> 
116                      </a> 
117                    </li> 
118                  </ul> 
119                </div> 
120              </div> 
121            </div> 
122          </div> 
123        </div> 
124      </div> 
125    </div> 
126  </div> 
127 
128 
129<#if HeroImage?? && HeroImage.getData() != ""> 
130    <#assign altBigDetailImage = HeroImage.getAttribute("alt") /> 
131    <#assign urlBigDetailImage = HeroImage.getData() /> 
132</#if> 
133<#if urlBigDetailImage?? && urlBigDetailImage?has_content> 
134    <div class="sella-container sella-container--only-img"> 
135        <div class="container-fluid"> 
136 
137        <#-- VIDEO --> 
138            <div class="row"> 
139                <div class="col-lg-10 offset-lg-1"> 
140                    <#if Video?? && Video?has_content > 
141                        <#if Video.getData()?? && Video.getData() != ""> 
142                            <#if Video.getData()?contains("vimeo")> 
143                                <#if HeroImage.getAttribute("fileEntryId")?? > 
144                                    <#assign HeroImage800x533 = sella_tool.getAdaptiveMediaSrc("800-x-533-px",HeroImage.getAttribute("fileEntryId")?number,HeroImage.name) /> 
145                                <#else> 
146                                    <#assign HeroImage800x533 = ""> 
147                                </#if> 
148                                <video width="100%" controls="" poster="${HeroImage800x533}"> 
149                                    <source src ="${Video.getData()}" type="video/mp4"> 
150                                </video> 
151                            <#else> 
152                                <iframe width="100%" height="350px" src="${Video.getData()}?controls=0" ></iframe> 
153                            </#if> 
154                        <#else> 
155                            <#if HeroImage?? && HeroImage?has_content > 
156                                <#if HeroImage.getData()?? && HeroImage.getData() != ""> 
157                                    <#if HeroImage.getAttribute("fileEntryId")?? > 
158                                        <#assign HeroImage800x533 = sella_tool.getAdaptiveMediaSrc("800-x-533-px",HeroImage.getAttribute("fileEntryId")?number,HeroImage.name) /> 
159                                        <figure class="article-detail__fig"> 
160                                        <img class="article-detail__img w-100" src="${HeroImage800x533}" alt="${HeroImage.getAttribute("alt")}"> 
161                                            <#if ImageOwner.getData()?? && ImageOwner.getData()!="" && HeroImage.getAttribute("alt") != "" > 
162                                                <figcaption class="article-detail__figcaption">${HeroImage.getAttribute("alt")} - <strong>${ImageOwner.getData()}</strong></figcaption> 
163                                            <#else> 
164                                                <figcaption class="article-detail__figcaption">${HeroImage.getAttribute("alt")} - <strong>${ImageOwner.getData()}</strong></figcaption> 
165                                            </#if> 
166                                        </figure> 
167                                    </#if> 
168                                </#if> 
169                            </#if> 
170                        </#if> 
171                    </#if> 
172                </div> 
173            </div> 
174        </div> 
175    </div> 
176</#if> 
177 
178<#-- testo --> 
179<#if Body?? && Body.getData()?has_content> 
180    <div class="container"> 
181        <div class="row"> 
182            <div class="col-md-8 offset-md-2 col-xl-6 offset-xl-3"> 
183                <div class="article-detail__text"> 
184                    ${Body.getData()} 
185                </div> 
186            </div> 
187        </div> 
188    </div> 
189</#if> 
190 
191<div class="article-detail__slider"> 
192    <div class="container"> 
193        <div class="row"> 
194            <div class="col-12"> 
195                <div class="slider slider-detail"> 
196                    <#if GalleryImage?has_content && GalleryImage??> 
197                        <#if GalleryImage.getData()?? && GalleryImage.getData() != ""  > 
198                            <#list GalleryImage.getSiblings() as curImage> 
199                                <#if curImage.getAttribute("fileEntryId")?? > 
200                                    <#assign curGalleryImage800x533 = sella_tool.getAdaptiveMediaSrc("800-x-533-px",curImage.getAttribute("fileEntryId")?number,curImage.name) /> 
201                                    <div> 
202                                            <div class="article-detail__gallery"> 
203                                            <a href="${curGalleryImage800x533}" title="${curImage.getAttribute("alt")}"> 
204                                                <img src="${curGalleryImage800x533}" alt="${curImage.getAttribute("alt")}" class="w-100"> 
205                                            </a> 
206                                            <#if curImage.GalleryImageOwner.getData()?? && curImage.GalleryImageOwner.getData()!="" && curImage.getAttribute("alt") != ""  > 
207                                                <div class="article-detail__gallery-caption">${curImage.getAttribute("alt")} - <strong>${curImage.GalleryImageOwner.getData()}</strong></div> 
208                                            </#if> 
209                                        </div> 
210                                    </div> 
211                                </#if> 
212                            </#list> 
213                        </#if> 
214                    </#if> 
215                </div> 
216            </div> 
217        </div> 
218    </div> 
219</div> 
Si è verificato un errore nell'elaborarazione del modello.
No compatible overloaded variation was found; wrong number of arguments.
The FTL type of the argument values were: extended_hash+string (com.liferay.portal.model.impl.LayoutSetImpl wrapped into f.e.b.StringModel), extended_hash+string (com.liferay.portal.kernel.theme.ThemeDisplay wrapped into f.e.b.StringModel).
The matching overload was searched among these members:
    com.liferay.portal.util.PortalImpl.getGroupFriendlyURL(com.liferay.portal.kernel.model.LayoutSet, com.liferay.portal.kernel.theme.ThemeDisplay, boolean, boolean),
    com.liferay.portal.util.PortalImpl.getGroupFriendlyURL(com.liferay.portal.kernel.model.LayoutSet, com.liferay.portal.kernel.theme.ThemeDisplay, Locale)

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign groupPrependURL = portalUtil...  [in template "51632#51678#66308" at line 12, column 1]
----
1<#assign articleId = .vars['reserved-article-id'].data /> 
2<#assign articleGroupId = .vars['articleGroupId'] /> 
3 
4<#assign journalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
5<#assign groupService = serviceLocator.findService("com.liferay.portal.kernel.service.GroupLocalService") /> 
6<#assign layoutSetService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutSetLocalService") /> 
7 
8<#assign journalArticle = journalService.getLatestArticle(articleGroupId?number,articleId?string,0) /> 
9<#assign urlTitle = journalArticle.getUrlTitle() /> 
10<#assign group = groupService.getGroup(groupId?number) /> 
11<#assign groupFriendlyURL = group.getFriendlyURL() /> 
12<#assign groupPrependURL =  portalUtil.getGroupFriendlyURL(layoutSetService.getLayoutSet(groupId?number, false), themeDisplay) /> 
13 
14<#assign maxSize = 4 /> 
15<#assign radiocorIndex = radiocor_news_tool.getNewsIndex(-1) /> 
16<#assign dateTimeFormat = languageUtil.get(locale, "dd/MM/yyyy HH:mm:ss")> 
17 
18<section class="radiocor-ultime-wrapper"> 
19    <#-- 
20    <h2 class="sella-underlined-title ml-0 mr-0"> 
21        <span>Ultim'ora</span> 
22    </h2> 
23     --> 
24    <div class="radiocor-ultime-content"> 
25		<#--As of avoiding index-out-of-bounds error, in FreeMarker 2.3.21 you can issue listVar[0..*4], 
26		which will slice out 4 items, or less if there's less available.    --> 
27 
28        <#list radiocorIndex[0..*maxSize] as r> 
29				<div class="lx-latest-news-item"> 
30					<div class="lx-latest-news-item-text"> 
31						<h3><a href="${groupPrependURL}/radiocor/notizia/?nid=${r.id}">${r.headLine}</a></h3> 
32						<span>${r.date?string(dateTimeFormat)!""}</span> 
33					</div> 
34					<div class="lx-clear-fix"></div> 
35				</div> 
36        </#list> 
37    </div> 
38 
39    <p> 
40        <a href="${groupPrependURL}/radiocor/" class="radiocor-read-more font-weight-bold">${languageUtil.get(locale,"radiocor-read-more")}</a> 
41    </p> 
42 
43</section> 
Si è verificato un errore nell'elaborarazione del modello.
The following has evaluated to null or missing:
==> httpUtil.getParameter  [in template "51632#51678#52245" at line 6, column 38]

----
Tip: It's the step after the last dot 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: #assign debug = validator.isNotNull(h...  [in template "51632#51678#52245" at line 6, column 1]
----
1<#--Inclusione delle MACRO  --> 
2<#include "${templatesPath}/SELLA-MACRO" /> 
3<#include "${templatesPath}/ADAPTIVE-IMAGE-MACRO" /> 
4 
5<#-- ##################################### DEBUG ################################### --> 
6<#assign debug = validator.isNotNull(httpUtil.getParameter(current_url,"sellaDebug",false)) /> 
7<#if debug > 
8    <div class="debug-content right"> 
9        TPL: REVIEW ADT 
10    </div> 
11</#if> 
12 
13<section class="review-adt-wrapper"> 
14    <div class="container"> 
15        <div class="review-adt-container"> 
16 
17            <#if entries?has_content> 
18 
19                <div class="review-adt-container-content"> 
20 
21                    <#list entries as curEntry> 
22 
23                        <#assign assetRenderer = curEntry.getAssetRenderer() /> 
24                        <#assign classPK = curEntry.getClassPK() /> 
25                        <#assign review = adt_tool.getFreemarkerMap(classPK, locale) /> 
26                        <#assign journalArticle = curEntry.getAssetRenderer().getAssetObject() /> 
27 
28                        <#assign customTitle = ""/> 
29                        <#if review.CustomTitle??> 
30                                <#assign customTitle = review.CustomTitle.value /> 
31                            </#if> 
32 
33                        <@getEditIcon /> 
34 
35                        <#if review.Cover??> 
36                            <#assign cover = review.Cover.value /> 
37                        </#if> 
38                        <#assign reviewTitle = curEntry.getTitle(locale) /> 
39                        <#assign abstract = curEntry.getSummary(locale) /> 
40 
41                        <div class="row"> 
42                          <div class="review-adt-img col-sm-5 pr-md-0"> 
43                            <a data-senna-off="true" href="${getDisplayPageURL(classPK, groupId)}"> 
44                                <div class="mb-2"> 
45                                    <img class="w-100" src="${cover.url}" > 
46                                </div> 
47                            </a> 
48                          </div> 
49                          <div class="review-adt-text col-sm-7"> 
50                            <h3> 
51                              <a data-senna-off="true" href="${getDisplayPageURL(classPK,groupId)}"> 
52                                <#if customTitle?? && customTitle?has_content> 
53                                        ${customTitle} 
54                                    <#else> 
55                                        ${reviewTitle} 
56                                    </#if> 
57                              </a> 
58                            </h3> 
59                            <div class="review-adt-abstract">${abstract}</div> 
60                          </div> 
61                        </div> 
62 
63                    </#list> 
64 
65                </div> 
66            </#if> 
67 
68        </div> 
69    </div> 
70</section> 
71 
72 
73<#macro getEditIcon> 
74    <#if assetRenderer.hasEditPermission(themeDisplay.getPermissionChecker())> 
75        <#assign redirectURL = renderResponse.createRenderURL() /> 
76 
77        ${redirectURL.setParameter("mvcPath", "/add_asset_redirect.jsp")} 
78        ${redirectURL.setWindowState("pop_up")} 
79 
80        <#assign editPortletURL = assetRenderer.getURLEdit(renderRequest, renderResponse, windowStateFactory.getWindowState("pop_up"), redirectURL)!"" /> 
81 
82        <#if validator.isNotNull(editPortletURL)> 
83            <#assign title = languageUtil.format(locale, "edit-x", entryTitle, false) /> 
84 
85            <@liferay_ui["icon"] 
86                cssClass="icon-monospaced visible-interaction" 
87                icon="pencil" 
88                markupView="lexicon" 
89                message=title 
90                url="javascript:Liferay.Util.openWindow({id:'" + renderResponse.getNamespace() + "editAsset', title: '" + title + "', uri:'" + htmlUtil.escapeURL(editPortletURL.toString()) + "'});" 
91            /> 
92        </#if> 
93    </#if> 
94</#macro> 

Indietro I servizi finanziari del futuro? Invisibili, istantanei, personalizzati e attenti alla persona

Insights
Finanza & Investimenti

I servizi finanziari del futuro? Invisibili, istantanei, personalizzati e attenti alla persona

Viviamo un tempo connesso all’insegna del tutto e subito, della fluidità dei processi, senza nessuna frizione, del soddisfacimento delle esigenze. Ma se questi sono i trend su cui si gioca la partita competitiva nei servizi finanziari, rimane imprescindibile l’approccio col cliente basato su trasparenza, sicurezza, rispetto. E la fiducia resta l’asset fondamentale delle banche su cui costruire una nuova relazione con gli utenti. La nuova riflessione nel format Insights - Il punto di Pierangelo Soldavini
I servizi finanziari del futuro? Invisibili, istantanei, personalizzati e attenti alla persona
Clienti all'entrata dell'Amazon Go di Seattle (Stephen Brashear / Getty Images)
Pierangelo Soldavini
Pierangelo Soldavini

Questa è la nuova puntata della nuova rubrica mensile Insights - Il punto di Pierangelo Soldavini, giornalista italiano esperto di economia e innovazione considerato un riferimento sui temi legati al mondo bancario.

***

Invisibilità, istantaneità, personalizzazione. Sono questi i trend che caratterizzano l’evoluzione dei servizi bancari e che determineranno la competitività nel prossimo futuro. D’altra parte, sono queste le caratteristiche del cambio di comportamento che la digitalizzazione pervasiva ha indotto in ciascuno di noi. All’insegna del tutto e subito, della fluidità dei processi, senza nessuna frizione, del soddisfacimento delle esigenze contingenti. Possiamo discutere all’infinito se sia uno sviluppo costruttivo o meno, quali conseguenze abbia sul modo di pensare, conoscere e agire, ma il dato di fatto è che l’approccio ruoterà sempre più attorno a questi pilastri. Per le aziende si tratta di un cambio drastico di paradigma o quantomeno di un processo di trasformazione che non è solamente tecnologica, ma ancor più culturale: la tecnologia è uno strumento utile per aumentare l’efficienza e soprattutto per mettere a punto una strategia che ponga davvero l’utente al centro. E quando si fa riferimento all’utente si intende sia il consumatore che l’azienda: sia B2C che B2B per dirla in gergo tecnico!

Partiamo dall’invisibilità, dalla fruizione dei servizi finanziari in maniera sempre più naturale, senza dover ricorrere a device e strumenti specifici. Se ci pensiamo bene anche l'intelligenza artificiale non è nata due anni fa con ChatGPT, ma abbiamo iniziato a considerarla quando si è presentata sotto una forma che permette un’interazione del tutto naturale: con l’AI generativa ci confrontiamo con domande scritte e sempre di più a parole, esattamente come facciamo con colleghi e amici. Così anche i pagamenti, il settore che fa spesso da apripista nell’ambito dei servizi finanziari, puntano in maniera crescente sulla semplificazione della transazione, per il quale oggi si privilegia lo smartphone o altri wearable che sostituiscono le carte e, ovviamente, il contante. In questa direzione il wallet digitale diventa il crocevia per abilitare all'utente la possibilità di scegliere lo strumento adeguato al momento. Il fatto che Apple abbia dovuto cedere alle pressioni europee per aprire a soluzioni esterne Apple Pay, il wallet più diffuso ma anche il più chiuso, lascia immaginare che il 2025 possa vedere un livello di competitività mai visto su questo fronte, sia online che nei negozi fisici .

Allo stesso tempo il concetto di invisibilità viene spinto all’estremo di pagamenti eseguiti senza neanche rendersene conto. Il famoso sistema di Amazon Go, il supermercato in cui si fa la spesa e si paga in maniera virtuale (ma reale dal punto di vista dell’esborso di denaro) senza passare dalla cassa e senza dover neanche fare un click replica su un fronte più quotidiano il sistema di pagamento del pedaggio autostradale senza fermarsi al casello. Sempre sotto il profilo dell’invisibilità il riconoscimento biometrico abilita una semplificazione dei processi, eliminando qualsiasi tipo di codice e password. In prospettiva la verifica dell’identità in modalità passiva diventerà uno standard anche per le transazioni online con sistemi biometrici avanzati che passano per le modalità di trascinamento, la pressione sui tasti, i movimenti tramite mouse, caratteristiche di ciascun utente che permettono di identificare in maniera sicura la sua identità.

Ma è l’intero comparto dei servizi finanziari a doversi adeguare sfruttando l’invisibilità come sistema per catturare il cliente, fornendo il servizio al momento giusto e nel luogo giusto: in questo senso l’embedded finance abilita la proposizione di servizi finanziari “nascosti” all’interno di processi di altro genere. Il comparto assicurativo sta già cavalcando da tempo questa modalità con polizze contro i furti e i danni, per i viaggi e la salute, per concerti e spettacoli, tutte proposte nel momento dell’acquisto dei servizi che implicano rischi da coprire. Ma anche il settore del credito inizia a scoprire il valore strategico dell’”embedded” che di fatto abilita un servizio che non si muove più in logica di distribuzione tramite filiale ma di fornitura del servizio quando serve, arrivando a indurne il bisogno. Un esempio è il “buy now pay later”, che offre la rateazione del pagamento in maniera automatica al checkout. Magari fornendo l’opportunità anche quando l’utente non aveva nessuna intenzione di farlo.

Veniamo all’istantaneità. In un mondo che si muove in tempo reale anche il denaro non può essere da meno e la velocità delle transazioni deve adeguarsi, per poter fornire a tutti, in primo luogo alle aziende, la certezza del completamento del processo e del trasferimento dei fondi in tempi brevi. L’Europa in particolare spinge in questa direzione con la regolamentazione sui pagamenti istantanei entrata in vigore nel 2024 ma che dispiegherà i suoi effetti nei prossimi mesi, quando gli attori finanziari dovranno fornire transazioni istantanee a condizioni concorrenziali con quelle attuali, non certo istantanee. In questo ambito i pagamenti account-to-account rappresentano uno strumento che sta spopolando in tutto il mondo: ne sono un esempio Brasile e India che bypassano gli intermediari con sistemi diretti e istantanei by design. Anche in Europa è nato il wallet digitale Wero, frutto della European Payment Initiative, nato come sistema peer-to-peer che si candida a gestire in maniera efficiente e rapida i pagamenti. Sotto questo profilo le criptovalute, bitcoin in testa, rappresentano un sistema nativamente istantaneo per le transazioni, in grado di evitare qualsiasi tipo di intermediazione con il passaggio immediato, trasparente e sicuro di valore da un wallet a un altro. L’efficienza garantita dalla blockchain, in forma pubblica o anche privata, e l’integrazione con smart contract abilita nuovi servizi potenziali per il business che vanno sotto l’etichetta di programmabilità delle transazioni permettendo di condizionare diverse fasi della transazione a determinati eventi. Ma l’intera finanza guarda alla tokenizzazione degli strumenti finanziari, dalle azioni ai bond, dalle quote di fondi agli Npl, come modalità innovativa per aprire nuovi mercati agli investitori.

Infine, la personalizzazione, che rappresenta il nuovo mantra di qualsiasi business. D’altra parte, il digitale costringe tutte le industry ad abbandonare il vecchio modello distributivo centralizzato, che per i servizi finanziari passa per la filiale o ad affiancarlo a quello digitale, lasciando all’utente l’opzione di poter scegliere la modalità voluta. Se l’embedded finance è abilitante in questo senso, la strategia si fonda sulla capacità di individuare i bisogni del singolo e di soddisfarli sulla base di un’offerta fatta su misura per lui. In questo senso è evidente che l’intelligenza artificiale rappresenti la tecnologia chiave per poter prevedere comportamenti e andamenti futuri potenziando la capacità previsionale umana. Con un’avvertenza che tutti devono avere presente: l’AI non può sostituire l’umano, ma contribuisce a supportarlo. Anche perché, in prospettiva, le soluzioni tecnologiche anche in questo campo tenderanno a standardizzarsi per tutti gli attori: la differenza allora la faranno le persone e le professionalità, la capacità di utilizzare questi strumenti in chiave personalizzata e creativa, fornendo servizi adeguati alle esigenze. Questo deve essere chiaro fin da subito.

Il patrimonio di dati a disposizione delle banche diventa valore se messo al lavoro in maniera adeguata. In questa chiave il regolamento Dora che entra in vigore nel 2025 punta a creare garanzie sulla resilienza operativa delle banche relativa alla sicurezza dei sistemi e sulla protezione dei dati dei clienti. In prospettiva la proposta di regolamento Fida punta a mettere a punto un quadro armonizzato per l’accesso e la condivisione dei dati finanziari, introducendo anche la possibilità di remunerare chi è disposto a farlo. D’altra parte, proprio sui dati si gioca una partita decisiva per la industry finanziaria. Se questi sono i trend strategici su cui si gioca la partita competitiva nei servizi finanziari, rimane infatti imprescindibile l’approccio relazionale con il cliente, singolo o azienda che sia, basato sulla trasparenza, sulla sicurezza e sul rispetto. In un mondo aperto e connesso, tutto deve essere fatto alla luce del sole, qualsiasi ombra rischia di avere effetti devastanti. Qualunque strategia, anche la più innovativa ed efficace, rischia di scontrarsi e di essere vanificata da opacità e sospetti, tanto più in un settore così delicato come quello dei servizi finanziari che coinvolge denaro e risparmi di cittadini e imprese. Alla fine, sia nel mondo fisico che in quello virtuale, la fiducia rimane l’asset fondamentale per le banche su cui costruire una nuova relazione con gli utenti.

Condividi e partecipa alla discussione