Only this pageAll pages
Powered by GitBook
1 of 73

Guida per l'Ente

Loading...

Configurazione della piattaforma

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Il catalogo dei servizi digitali

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Creare un servizio

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Il ruolo di admin

Il ruolo di admin consente di intervenire sulla piattaforma a tutti i livelli, a parte alcune funzioni operative riservate a OpenCity Labs che sono:

  • la creazione di una nuova istanza;

  • il nome e il logo dell’Ente;

  • il dominio dell’istanza;

  • il sistema di autenticazione usato;

  • la creazione dei servizi di contatto con l’Ente (Segnala disservizio, Prenota appuntamento, Richiesta assistenza).

Le funzioni admin son di due tipi: alcune si gestiscono a livello generale (interfaccia di admin della piattaforma) e hanno effetto su tutti i servizi; altre consentono la configurazione specifica di singoli calendari e servizi.

Consentire all'utente di ritirare una pratica

Non è possibile ritirare una pratica se:

  • non è stato configurato il ritiro;

  • è presente un pagamento;

  • l'utente non è il richiedente;

  • il servizio ha un workflow di tipo "Inoltro" e la pratica è stata acquisita dal backoffice di gestione;

  • il servizio ha la protocollazione attiva ed e la pratica è in stato "Inviata".

Per permettere agli utenti di una volta inoltrata, accedi alla scheda "Dati generali" (1) del servizio e attiva la voce "Consenti al cittadino di ritirare una pratica dopo che questa è stata presentata" (2)

ritirare una pratica

Servizio realizzato da OpenCity Italia

Nel corso del tempo OpenCity Italia ha creato un ampio catalogo che copre tutti i principali servizi pubblici di un Ente: in questo modo si parte da un modello di servizio realizzato con cura e già sottoposto a un ciclo di progettazione, sviluppo e test che ne garantisce la qualità.

In questo scenario, quindi, l'Ente:

  • definisce gli obiettivi;

  • mette a disposizione le informazioni;

  • controlla il risultato finale;

  • gestisce tutti gli aspetti del servizio che richiedono configurazioni, come le fasi di protocollo o la definizione dei listini di pagamento.

Nel caso in cui siano necessaria delle modifiche una volta messo in produzione il servizio, l'ente si occupa di aggiornare le informazioni o di introdurre piccole variazioni.

04/06/2025

Pagare tributi IMU

🌄Miglioramento dell'esperienza utente

  • Aggiornato il servizio in modo da consentire la selezione dell’anno d’imposta, permettendo così il calcolo dei dati sia per l’anno corrente che per anni precedenti.

  • Aggiunto un menu a tendina nella pagina iniziale che consente di selezionare l’anno d’imposta desiderato

  • Inseriti due banner informativi che mostrano, in base all’anno d’imposta selezionato, le date di scadenza dell’acconto e del saldo

  • Inserito un banner informativo che, nel caso in cui l’utente acceda dopo la scadenza dei termini di pagamento, mostra quanti giorni sono trascorsi dalla data di scadenza

  • Inserito un banner che impedisce l’accesso al calcolo per gli anni in cui non risultano caricate delle aliquote

🐞Configurazioni tecniche

  • Corretto il campo “Saldo finale” per mostrare l’importo con il separatore delle migliaia

Autorizzazione alla sepoltura di un defunto

🌄 È ora disponibile il nuovo servizio "Autorizzazione alla sepoltura di un defunto"!

Autorizzazione alla cremazione di un defunto

🌄 È ora disponibile il nuovo servizio "Autorizzazione alla cremazione di un defunto"!

Domanda di agevolazione tributaria (TARI)

🌄 È ora disponibile il nuovo servizio "Domanda di agevolazione tributaria (TARI)"!

Gli errori più comuni da evitare

  • lavorare al di fuori di un piano di realizzazione dei servizi e non sapere quante risorse (tempo) sia possibile dedicare al servizio su cui si sta lavorando. Perdere di vista l'obiettivo generale di digitalizzare tutti i servizi dell'ente

  • progettare e sviluppare senza avere chiaro in mente quale sia l'obiettivo e in generale non avere obiettivi e aspettative condivise con i colleghi, tenendo conto della necessità di bilanciare qualità e costi di realizzazione

  • non dare importanza adeguata all'adozione degli standard (sapendo comunicare ai colleghi i vantaggi in termini di qualità, tempi di realizzazione, solidità delle soluzioni adottate). Dedicare troppo tempo a personalizzazioni che non aggiungono valore significativo

  • non conoscere a sufficienza il catalogo, dedicando tempo prezioso a "reinventare la ruota" quando si potrebbe partire da servizi già pronti ed allocare diversamente il proprio tempo

  • fare modifiche direttamente in produzione anziché clonare il servizio per modificarlo in sicurezza. Mettere in produzione un servizio senza averne testato i flussi adeguatamente.

Gli elementi

Per ordinare i dati e raggrupparli in specifiche sezioni, trascina dalla sezione "Layout" dell'elenco il componente "Elementi".

In questo modo crei una sorta di contenitore, al cui interno si trovano determinate classi di dati, di cui puoi configurare nome (1) e informazioni al cittadino (2).

Specificare il tempo di erogazione del servizio

I giorni massimi di erogazione del servizio vengono comunicati tramite notifica automatica sia all'utente che ha attivato il servizio sia agli operatori abilitati per lavorarne le pratiche.

Accedi alla scheda "Dati generali" (1) del servizio e specifica in giorni il tempo massimo di erogazione del servizio (2)

Il tempo massimo di erogazione indicato nei Dati generali non corrisponde automaticamente ai tempi e scadenze indicate nella scheda informativa del servizio sul sito web

Scegliere il tipo di ricevuta della pratica

La ricevuta del servizio è la copia PDF (nel caso del servizio di pagamento dell'IMU, l'F24) generata nel momento in cui la pratica viene ricevuta dal sistema.

Viene inviata via email al cittadino, che può visualizzarla anche nella sua Area personale.

Accedi alla scheda "Ricevuta" del servizio (1) e seleziona il tipo di ricevuta prevista (2).

Il tipo di ricevuta

Come admin puoi stabilire:

  • che la ricevuta con il riepilogo dei dati inseriti non venga generata automaticamente ("Modulo compilato: su richiesta");

  • che la ricevuta venga generata automaticamente ("Modulo compilato: automatico");

  • che il documento generato sia un F24 ("F24") - obbligatorio per il servizio "Pagare tributi IMU".

Introduzione

La trasformazione digitale della Pubblica Amministrazione italiana rappresenta un elemento centrale per migliorare l’efficacia, l’efficienza e la qualità dei servizi pubblici offerti a cittadini e imprese. La creazione di servizi digitali nella PA deve oggi seguire un insieme articolato di riferimenti normativi, linee guida e standard tecnici che garantiscono l’uniformità, la qualità e l’interoperabilità delle soluzioni adottate.

La piattaforma OpenCity Italia rispetta nativamente questi standard. Tuttavia, il rispetto delle regole tecniche e della normativa dipende anche dal modo in cui i singoli servizi vengono creati. I servizi presenti nel catalogo OpenCity Italia rispettano nativamente gli standard e OpenCity Italia ne garantisce il corretto funzionamento. Nel caso di servizi realizzati in autonomia dagli enti l'onere di rispettare i requisiti e garantire il funzionamento tecnico dei servizi realizzati è invece una responsabilità in capo all'ente.

Il presente manuale nasce quindi con l’obiettivo di supportare le amministrazioni pubbliche nella progettazione e realizzazione di servizi digitali semplici, accessibili, sicuri e orientati ai bisogni degli utenti, in coerenza con il quadro normativo e strategico nazionale ed europeo. Il manuale si rivolge a tutti i soggetti coinvolti nella progettazione, realizzazione e gestione di servizi digitali pubblici — dirigenti, responsabili IT, designer, sviluppatori, partner — offrendo un percorso pratico e coerente per creare soluzioni digitali moderne, efficienti e orientate a creare valore per l'ente e per i cittadini.

Geo-localizzare una pratica: il componente Address

Il componente non deve essere contenuto all'interno di componenti "Datagrid"

Per geolocalizzare una pratica, trascina nel modulo il componente "Address".

Nella sezione "Provider" del componente, imposta OpenStreetMap Nominatim come provider

Infine, nella sezione "API", verifica che il property name indicato sia "address".

Permettere agli operatori di richiedere integrazioni

Per consentire agli operatori di , accedi alla scheda "Dati generali" (1) del servizio e attiva la voce "Consenti agli operatori di richiedere intergrazioni per le pratiche di questo servizio" (2).

Indicare il tipo di autenticazione

Accedi alla scheda "Dati generali" (1) del servizio e specifica il metodo di accesso richiesto agli utenti per attivare il servizio (2).

I metodi di autenticazione del servizio

I metodi di accesso previsti sono:

  • SPID/CIE;

  • .

Accedere senza login

Nel caso di un servizio con accesso anonimo, l’area personale del cittadino non si attiva e le eventuali pratiche avviate non vengono salvate all'interno della sua area personale. Il cittadino riceve comunque eventuali aggiornamenti relativi alla pratica tramite notifica email.

Nel caso in cui il servizio preveda il metodo di accesso "Anonimo", gli utenti dovranno inserire manualmente i propri dati anagrafici.

Per permettere agli utenti di scegliere se autenticarsi o meno con SPID o CIE, attiva la voce "Suggerisci login per autocompletamento". Questo metodo di autenticazione è normalmente previsto per i servizi di contatto con l'Ente e di helpdesk (Prenota appuntamento; Richiedi assistenza; Segnala disservizio).

Accedere alla piattaforma

Il back office della piattaforma è un’applicazione web utilizzabile attraverso un normale browser web. Questo significa che può essere utilizzata per gestire la configurazione dei servizi in qualsiasi luogo e in qualsiasi orario, a prescindere dalla sede in cui si lavora e anche in situazioni di smart working.

In questo modo si abilita l'introduzione di modalità di lavoro flessibili all'interno degli enti pubblici, senza ulteriori complicazioni.

Accesso al sistema

L’accesso alla piattaforma avviene attraverso un link di accesso collocato nel footer (1).

OpenCity mette a disposizione un sistema di autenticazione alla piattaforma (o in alternativa, su richiesta, un connettore di autenticazione con l'identity management dell'ente).

In caso di utilizzo del sistema di autenticazione nativo, l'admin seleziona "Gestisci i servizi digitali" (2), inserisce username e password (3) e clicca su "Login" (4).

Creare una nuova password

L'admin può creare una nuova password tramite il link "Hai dimenticato la password?" collocato nella pagina di login

Qui l'admin indica l'indirizzo mail associato al suo utente oppure il suo username (1) e poi clicca su "Reimposta password" (2).

All'indirizzo mail indicato viene inviata una notifica di cambio password. Cliccando su "Reimposta password" (1), l'admin viene rimandato ad una schermata dove dovrà inserire quella nuova (2). Per confermare, l'admin clicca su "Cambia password" (3).

I columns

Il componente "Columns" serve per organizzare il layout di un form in più colonne affiancate, in modo da migliorare la leggibilità e la disposizione dei campi sullo schermo.

Non raccoglie dati, ma è puramente strutturale: ti aiuta a disporre i componenti in riga anziché in colonna.

Per riunire più componenti all'interno di colonne, trascina dalla voce "Layout" il componente "Columns".

Una volta inserito e configurato il titolo, trascina al suo interno i componenti che vuoi incolonnare.

Impostare i messaggi al cittadino

Accedi alla scheda "Messaggi" del servizio per:

  • abilitare l'invio di notifiche automatiche al cittadino ad ogni cambio di stato della pratica;

  • configurare il testo delle notifiche.

Abilitare l'invio delle notifiche

Per attivare o disattivare l'invio di notifiche automatiche al cittadino per ogni cambio di stato della pratica, attiva la voce "Abilitare l'invio del messaggio?" presente per ogni stato.

Modificare il testo delle notifiche

Mentre configuri i messaggi, puoi:

  • modificare l'oggetto delle notifiche automatiche al cittadino;

  • modificare il testo della notifica;

Usare i placeholders

Quando modifichi il testo di una notifica, puoi utilizzare i placeholders disponibili alla voce "Placeholders disponibili".

I placeholders a disposizione si suddividono tra:

  • generali: comuni a tutti i servizi digitali;

  • specifici del servizio ("Modulo utente"): relativi ai campi che compongono il servizio digitale;

Copia il placeholder che vuoi inserire e incollalo nel testo del messaggio.

L'HTML

ll componente "HTML" è un componente non interattivo che serve per inserire contenuti statici o dinamici all'interno del modulo, senza raccogliere dati.

Puoi utilizzare un HTML per inserire eventuali messaggi di errore o comunque messaggi che vuoi rendere visibili all'utente durante la compilazione della pratica.

Una volta trascinato il componente nel modulo, accedi alla sezione "Display" e configura la voce "Content" con il testo che vuoi inserire nel modulo.

Servizi realizzati dall'Ente

Utilizzando la piattaforma di OpenCity Italia (,), oltre ad API e webhook per realizzare integrazioni tra applicativi, l’Ente può autonomamente prototipare e portare in produzione i servizi.

Questo approccio è consigliato per i servizi più semplici e per iniziative specifiche dell'ente, non corrispondenti a servizi a catalogo. In questi casi ha disposizione un percorso che permette di rispondere in modo flessibile e veloce a iniziative non programmate e necessità operative che possono nascere nella gestione quotidiana delle attività. La sezione "creare un servizio" mette a disposizione le indicazioni operative su come procedere.

In questo caso, OpenCity Italia non interviene nella soluzione di problemi tecnici di soluzioni create in autonomia dall'ente, operazione che richiede una conoscenza del servizio.

L'ente deve disporre della capacità progettuale e della conoscenza tecnica necessaria per utilizzare gli strumenti messi a disposizione.

Il Textfield

Il componente "Textfield" è uno dei più usati e serve per inserire un campo di input testuale nel form, dove l’utente può scrivere una singola riga di testo (es. nome, codice fiscale, indirizzo email, ecc.). Viene normalmente usato per raccogliere dati non strutturati.

Quando aggiungi un Textfield, puoi personalizzare vari aspetti, come:

  • ;

  • .

Il componente può essere utilizzato anche per la e

Nascondere i componenti

All'interno del modulo, puoi inserire componenti che non vengono visualizzati dagli utenti (es. ).

Le strade che puoi seguire sono due:

  • inserire il componente "Hidden";

  • usare la funzione hidden presente nei componenti.

Usare il componente "Hidden"

Trascina all'interno del modulo il componente "Hidden".

Il componente è vuoto e torna molto utile nel caso in cui sia necessario fare dei calcoli oppure per il .

Usare la funzione hidden

Diversi componenti dispongono di questa funzione, che permette di renderlo invisibile agli utente durante il flusso di compilazione della pratica.

Nella sezione "Display" del componente, attiva la funzione "Hidden".

Programmare l'assegnazione automatica delle pratiche

La funzione non è attiva di default ma viene fornita su richiesta dall'Ente.

Collocati nella scheda "Assegnazione automatica" del servizio.

Tramite il menù a tendina, seleziona su quale campo basare l'assegnazione automatica delle pratiche.

È possibile effettuare l'assegnazione automatica solamente per i campi .

Successivamente, seleziona l'ufficio a cui assegnare la pratica in base al valore del campo che hai indicato prima.

Gli uffici in elenco sono quelli che hai .

Creare componenti visibili solo all'operatore

Puoi configurare alcuni componenti in modo tale che siano visibili solamente nel caso in cui sia l'operatore a compilare la pratica.

Nella sezione "API" del componente, compila la voce "Custom properties" con la proprietà "operator_restricted" di valore "true"

Successivamente, nella sezione "Layout", compila la voce "HTML Attributes" con l'attributo "readonly" di valore "true".

Infine, nella sezione "Conditional", compila la voce "Advanced condition" con il codice

La select

Il componente "Select" permette all’utente di selezionare un'opzione da un elenco predefinito, simile a un menu a tendina.

Successivamente, collocati nella sezione "Data" e compila la voce "Data source label" con le opzioni che l'utente dovrà indicare in fase di richiesta, specificando il nome (label) e il valore (value).

I valori indicati nella colonna value sono necessari per la gestione delle .

I dati del componente, inoltre, possono essere

Abilitare l’AppIO

Nella sezione "Ente", seleziona la voce "Invio messaggi".

Per abilitare la funzione di invio messaggio, è necessario che l'Ente si sia

Sarà poi necessario inserendo le relative chiavi univoche.

Le funzioni generali dell'admin

In questo capitolo vengono descritte in dettaglio le principali funzionalità a disposizione dell'admin. Tra queste: la configurazione dell’aspetto grafico della piattaforma; la configurazione delle integrazioni con servizi esterni — come AppIO e gli intermediari di pagamento; la gestione e creazione di utenti admin e operatore.

Configurare App IO

Dopo aver attivato appIO , nella scheda "AppIO" inserisci:

  • l'identificativo del servizio;

  • la chiave primaria;

  • la chiave secondaria.

Una volta inserite queste informazioni, puoi testare il funzionamento di appIO inserendo un codice fiscale a cui inviare una notifica di prova.

Service builder
richiedere integrazioni
Anonimo
Nell'immagine, l'HTML è configurato in modo tale da avvertire il cittadino che l'ISEE che ha inserito è troppo alto e pertanto non può procedere con la richiesta.
l'obbligatorietà del campo
la lunghezza minima e massima del testo
configurazione dei conditional
popolato via API
componenti di calcolo
configurare un token
recupero di dati da un'altra istanza
Select boxes e Radio button
configurato nella Stanza del cittadino
“show = !instance.component.properties.hasOwnProperty('operator_restricted')”
relazioni tra componenti
popolati via API.
tra le configurazioni generali

Changelog dei servizi

Questo capitolo raccoglie i changelog delle modifiche e degli aggiornamenti apportati al catalogo dei servizi digitali.

Scenari di digitalizzazione dei servizi

La digitalizzazione dei servizi è una sfida complessa che solitamente produce un impatto su tutti i settori dell'ente e abbraccia decine o centinaia di servizi. A questo scopo risulta essenziale programmare le attività in accordo con i vertici dell'ente, in modo da assicurarsi di creare un percorso condiviso che conduca alla completa digitalizzazione dei servizi comunali. Per raggiungere questo obiettivo OpenCity Italia suggerisce di utilizzare un approccio misto, attivando tutti i servizi di interesse presenti a catalogo e realizzando invece in autonomia servizi non presenti a catalogo. In alcuni casi, più rari, l'ente può richiedere a OpenCity la progettazione e realizzazione di un servizio non presente a catalogo (per esempio nei casi in cui l'ente non disponga internamente delle risorse necessarie o quando la realizzazione di un servizio presenta sfide tecnologiche troppo complesse)

Cultura degli standard

La piattaforma Opencity Italia fa largo uso di componenti e flussi standard che permettono di realizzare la conformità normativa e creare esperienze efficaci per i cittadini e i funzionari: protocollazione automatica, gestione dei pagamenti, identificazione del richiedente, usabilità, accessibilità, precompilazione dei dati del cittadino. Tutte queste cose non devono essere progettate e realizzate ma vanno solamente configurate. Con un approccio di questo tipo si evita di "reinventare ogni volta la ruota" e si assicura che ogni volta che si porta in produzione un servizio esso abbia un livello qualitativo elevato e risponda ai rquisiti tecnici e normativi del settore pubblico.

Per ottenere questo risultato occorre che il personale dei Sistemi informativi conosca bene il funzionamento della piattaforma e sia nelle condizioni di realizzare in autonomia un servizio.

Il catalogo dei servizi digitali

OpenCity Italia mette a disposizione un ampio catalogo che copre tutti i principali servizi pubblici di un Ente: in questo modo si parte da un modello di servizio realizzato con cura e già sottoposto a un ciclo di progettazione, sviluppo e test che ne garantisce la qualità. OpenCity garantisce il funzionamento dei servizi presenti a catalogo e fornisce assistenza tecnica in caso di problematiche relative al servizio.

Attualmente, OpenCity Italia dispone di un catalogo per i Comuni.

Sono in fase di definizione il catalogo per le ASL e quello per le Regioni e le Province, che verranno aggiornati e integrati nel presente manuale appena disponibili.

02/07/2025

Costituzione di un'unione civile

🌄 È ora disponibile il nuovo servizio "Costituzione di un'unione civile"!

Costituzione di una convivenza di fatto

🌄 È ora disponibile il nuovo servizio "Costituzione di una convivenza di fatto"!

Attivazione lampade votive

🌄 È ora disponibile il nuovo servizio "Attivazione lampade votive"!

Rilascio copia atti incidenti stradali

🌄 È ora disponibile il nuovo servizio "Rilascio copia atti incidenti stradali"!

Deroga al divieto di circolazione

🌄 È ora disponibile il nuovo servizio "Deroga al divieto di circolazione"!

Autolettura del contatore idrico

🌄 È ora disponibile il nuovo servizio "Autolettura del contatore idrico"!

Iscrizione al doposcuola

🌄 È ora disponibile il nuovo servizio "Iscrizione al doposcuola"!

Iscrizione al pre-scuola

🌄 È ora disponibile il nuovo servizio "Iscrizione al pre-scuola"!

Le funzioni

Attraverso i componenti spiegati nel capitolo precedente, la piattaforma permette agli admin di gestione funzioni diverse, come ad esempio la possibilità di effettuare calcoli, precompilare i campi con dati certificati o provenienti da API, impedire l'invio di più domande per uno stesso servizio e creare componenti visibili solamente agli operatori del servizio.

integrato con l'AppIO
configurare il singolo servizio
La dashboard di amministrazione

Configurare l'integrazione con PDND

Per maggiori informazioni riguardo l'attivazione e l'integrazione con PDND, ti rimandiamo ai seguenti materiali:

  • Integrazione con la PDND;

  • Richiesta di fruizione dati via PDND.

Attualmente, l'erogazione di dati certificati tramite PDND è possibile per i nested form:

  • OC - Figli;

  • OC - Coniuge;

  • OC - Genitori;

  • OC - Residenza (archetipo);

  • OC - Nucleo familiare.

Una volta abilitata l'integrazione con PDND, clicca su "Impostazioni" e accedi alla sezione "Impostazioni della dashboard"

In questa sezione puoi:

  • visualizzare la lista dei client abilitati;

  • creare un nuovo client;

  • modificare un client esistente;

  • impostare un client come predefinito;

  • eliminare un client.

Crea un client

Clicca su "Crea nuovo client" per procedere alla creazione del client.

Inserisci il nome e alla voce "Ambiente" seleziona la voce "Produzione"

Copia la chiave pubblica che viene generata.

Nell'ultima parte, inserisci il Client ID e il KID generati sul sito della PDND.

Abilita gli e-service

Una volta configurato il client, clicca su "Abilita" per abilitarlo alla fruizione di uno degli e-service disponibili.

Successivamente, incolla il purpose ID che hai trovato nella sezione di configurazione della PDND.

Modifica un client

Nella pagina di integrazione con la PDND, clicca su "Modifica client e e-services" per modificare un client.

Modificando un client puoi procedere all'abilitazione degli e-services.

Imposta un client come predefinito

Clicca sull'icona a forma di stella per impostare uno dei client in elenco come predefinito.

Elimina un client

Nella pagina di integrazione con la PDND, clicca sull'icona a forma di cestino per cancellare uno dei client in elenco.

Configurare aspetto grafico e link di header e footer

La configurazione delle URL di Favicon e Logo sono a carico di OpenCity Italia e quindi non devono essere modificate in alcun modo dall'admin dell'Ente

Nella pagina "Ente", seleziona la voce "Aspetto grafico" per personalizzare l'aspetto grafico della piattaforma.

Motore di ricerca e catalogo servizi

Nel caso in cui il motore di ricerca e il catalogo dei servizi siano disabilitati, l’area personale non presenterà un’interfaccia utente (frontend) autonoma.

In questa configurazione, le schede informative relative ai servizi e il motore di ricerca sono accessibili dal sito web dell’ente (obbligatorio per i Comuni che hanno aderito alla misura 1.4.1. del PNRR).

Questo approccio consente di centralizzare l’accesso a tutti i servizi in un unico punto, facilitando la consultazione da parte degli utenti e garantendo una comunicazione più coerente e integrata all’interno del portale dell’ente.

Header e footer

Qui puoi configurare i link di header e footer della piattaforma, indicando:

  • i link dell'amministrazione afferente e della navbar;

  • il sottotitolo dell'Ente;

  • i link alle voci di primo livello del sito web ("Sezioni");

  • i link agli Argomenti del sito;

  • punti di contatto e canali social;

  • i link alle pagine di Trasparenza, Privacy e alla Dichiarazione di accessibilità

  • i servizi di contatto dell'Ente;

Configurare gli intermediari di pagamento

Nella pagina "Ente", seleziona la voce "Pagamenti" per abilitare e configurare l'intermediario di pagamento usato dall'Ente.

Sono supportati diversi intermediari di PagoPA che consentono la creazione di dovuti secondo le necessarie impostazioni di ogni sistema di pagamento.

Una volta trovato l'intermediario del tuo Ente, clicca su "Abilita" e configura i parametri richiesti.

I parametri da compilare cambiano da intermediario a intermediario.

Successivamente, è necessario configurare il sistema di pagamento a livello di singolo servizio, inserendo alcuni dati specifici (per esempio la codifica che consente di riconciliare correttamente in contabilità il pagamento specifico del servizio).

Checkout di PagoPA

Come admin puoi abilitare il checkout di PagoPA.

Se attivato, in fase di pagamento il cittadino viene indirizzato direttamente sul portale di PagoPA, dove potrà effettuare il pagamento.

Il pagamento sarà comunque riportato all’interno dell’Area personale dell’utente.

Creare gli admin

OpenCity Italia sconsiglia di fornire un utente admin a chi non ha seguito il corso OpenCity dedicato ai servizi digitali e alle funzioni di amministratore

Seleziona la voce "Amministratori" per creare nuovi utenti admin.

Successivamente, clicca su "Aggiungi" per creare un nuovo utente.

Consentire l'approvazione parziale delle pratiche

Se il sistema di protocollazione è stato configurato, le pratiche accettate parzialmente vengono protocollate come tutte le altre.

Collocati nella sezione "Impostazioni avanzate" e attiva la funzione "Consenti agli operatori di esprimere un'accettazione parziale sulla pratica"

In questo modo, gli operatori del servizi potranno effettuare un' delle richieste per quel servizio.

Identificare il flusso di lavoro

Accedi alla scheda "Dati generali" (1) del servizio e indica il flusso di lavoro previsto dal servizio digitale (2).

I flussi di lavoro di un servizio

La piattaforma mette a disposizione due flussi di lavoro diversi:

  • per approvazione: la pratica viene presa in carico da un operatore e lavorata;

  • per inoltro: la pratica viene acquisita comunque dal backoffice ma non viene lavorata dagli operatori.

Nel caso in cui sia attivo il flusso di lavoro per inoltro:

  • l'operatore non può richiedere integrazioni e inviare messaggi all'utente;

  • l'utente non può inviare messaggi all'operatore.

L'oggetto della pratica

Normalmente l’oggetto della pratica viene creato in automatico, ma è possibile modificarlo.

Per configurarlo, trascina un campo "Textfield" all'interno del modulo.

Nella sezione "Display" del componente, nascondi il campo, e nella sezione "API" inserisci "appilication_subject" alla voce "Property name".

Successivamente, accedi alla sezione "Data" del componente e alla voce "Calculated value" inserisci il codice JavaScript per personalizzare l'oggetto della pratica.

title = form.title + "Oggetto pratica";
    if (data.for_whom === "delegato" || data.for_whom === "rappresentante" ) {
        value =title + data.beneficiary.data.family_name + " " + data.beneficiary.data.given_name + " "+ data.beneficiary.data.tax_id
    } else if  (data.for_whom === "impresa") {
        value = title + data.legal_entities.data.legal_name + " " + data.legal_entities.data.tax_id
    }

Integrare un servizio digitale con il sistema di protocollo

Accedi alla scheda "Protocollo" del servizio.

Qui trovi un elenco con tutti i sistemi di protocollazione integrati nella piattaforma. Trova quello in uso al tuo Ente e poi clicca su "Abilita".

Una volta attivato il protocollo, configura i parametri richiesti.

Selezionare il tema

Nella pagina "Ente", seleziona la voce "Tema" per personalizzare il colore della piattaforma.

I temi della piattaforma disponibili sono selezionabili tramite un menù a tendina (1) e visibili in anteprima (2)

Puoi anche configurare top header, center header e navbar header in versione chiara.

Abilitare la scheda esterna per il servizio

Nel caso in cui la scheda informativa del servizio digitale sia pubblicata all'interno del sito web, accedi alla scheda "Dati generali" (1) del servizio, attiva la scheda esterna (2) e incolla la URL (3).

Per gli Enti che utilizzano la piattaforma sito web di OpenCity Italia è obbligatorio inserire l'URL della scheda servizio pubblicata sul sito web.

Le date

Per inserire un campo che preveda l'inserimento di una data durante la compilazione della pratica, trascina dall'elenco il componente "Textfield".

Configurare le date

Per controllare che la data inserita dall'utente abbia un formato giorno/mese/anno ed evitare che possa inserire una data nel passato, collocati nella sezione "Validation" del componente textfield (1), apri la voce "Custom validation" (2) e inserisci questo codice JavaScript (3):

date = moment(input, 'DD/MM/YYYY');
if (!date.isValid()){
valid = "La data inserita non è valida";
}
if (date.isBefore(moment())){
valid = "La data inserita non può essere nel passato";
}

I componenti

La piattaforma integra il progetto opensource Form.io

I componenti sono i mattoncini con cui costruiamo i servizi digitali. La UI dei componenti (la grafica e il comportamento) segue lo UI kit di Designers Italia.

Nei paragrafi successivi trovi un elenco dei campi più utilizzati durante la creazione o la modifica di un servizio digitale.

Usare il service builder

Per procedere alla modifica del modulo di un servizio digitale, accedi alla scheda "Modulo".

In questa sezione, sulla sinistra, trovi un elenco di componenti che puoi utilizzare per modifiare il modulo del servizio.

Per inserire un componente, trascinalo dall'elenco all'interno del modulo.

Componenti standard

La creazione dei servizi avviene con un modello a componenti, basati su classi dati. Tutti i servizi possono utilizzare la libreria di componenti standard (Nested form), con i relativi vantaggi, tra cui la realizzazione del principio del once only.

Componenti custom

Nonostante il vantaggio nell'utilizzo di componenti standard, la piattaforma consente di di creare facilmente componenti custom per raccogliere diversi tipi di dati, da riutilizzare eventualmente anche per altri servizi.

Il datagrid

All'interno del Datagrid non vanno inseriti componenti nested form, per cui non funzionerebbe la precompilazione dei dati.

Il componente Datagrid è un contenitore dinamico e ripetibile che ti permette di inserire più righe di dati, ciascuna con una o più colonne (campi), come se fosse una piccola tabella interattiva compilabile

Trascina dalla voce "Layout" il componente "Datagrid".

Una volta inserito e configurato il titolo (Label), trascina al suo interno i componenti che vuoi mettere nella tabella.

Le configurazioni del servizio

Prima di procedere alla creazione del modulo di un servizio digitale, l'amministratore deve configurare alcuni parametri, come ad esempio lo stato del servizio, il tipo di autenticazione previsto, l'integrazione con appIO e la possibilità da parte degli operatori di richiedere integrazioni per il servizio.

Utilizzo di dati certificati da PDND

Dopo l’abilitazione della PDND sulla piattaforma, è possibile configurare un servizio digitale affinché utilizzi dati certificati provenienti da fonti ufficiali tramite l’integrazione con la Piattaforma Digitale Nazionale Dati.

Questa configurazione consente di precompilare o validare le informazioni inserite dal cittadino con dati aggiornati e attendibili.

Integrare un servizio digitale con il sistema di prenotazione apputnamenti

Trascina nel modulo il componente "Calendar".

Una volta dato il titolo ("Label"), seleziona il calendario da integrare nel servizio alla voce "nome calendario". In elenco, troverai quelli creati all'interno della piattaforma

Alla sezione "API" compila la voce "property name" con "calendar". In caso contrario, l'integrazione con il sistema di prenotazione appuntamento non potrà funzionare.

Una volta inserito il componente, alla sezione "Integrazioni" del servizio, stabilisci il punto di attivazione della prenotazione

Impostare delle azioni automatiche: le logiche

Le logiche sono uno strumento potente per rendere i moduli dinamici e reattivi a ciò che l’utente inserisce. Permettono di eseguire azioni automatiche sui componenti del form in base a condizioni specifiche.

Accedi alla sezione "Logic" del componente e clicca su "Add logic" per creare un nuovo conditional logic.

Una volta creata la logica:

  • dai un titolo (1);

  • scegli il trigger (es. simple) (2);

  • stabilisci in quali casi si deve attivare (3).

Una volta creata la logica, aggiungi una o più azioni previste cliccando su "Add action"

Durante la configurazione, dai un titolo all'azione creata (1) e configurala (2)

Un esempio pratico: modificare la label di un textfield tramite le logiche

Inserisci un componente intitolato "Qual è il tipo di accesso?" con valori "semplice" e "generalizzato".

Una volta fatto, inserisci un componente intitolato in base al valore selezionato prima.

Alla voce "Logic" del textfield crea una nuova logica, intitolata "Quando il tipo di accesso è semplice"

Seleziona l'opzione "Simple" come trigger; il componente in relazione al quale impostiamo la logica è "Qual è il tipo di accesso" e il value "semplice".

Una volta fatto, aggiungi un'azione intitolata con il nome dell'azione che viene compiuta (es. "la label cambia"), scegliamo l'opzione "Property" come tipo (1) e come component property l'opzione "Label" (2).

Fatto questo, nel campo "Text", inserisci la label che vogliamo compaia quando il valore selezionato nel radio button è "semplice" (es. "Documento non pubblicato").

Ripeti il procedimento per modificare la label nel caso in cui il valore del radio button sia invece "generalizzato".

Configurare l'anagrafica dell'Ente

Per configurare l'angrafica, clicca su "Impostazioni" (1) e seleziona la voce "Ente" (2).

All'interno di questa pagina, puoi indicare:

  • il nome dell’Ente;

  • i codici meccanografico, catastale, IPA e AOO (affinché la protocollazione funzioni correttamente, tutti questi campi dovranno essere compilati);

  • il link che compare sul titolo di ogni pagina (per esempio, il link al sito web istituzionale);

  • il codice amministrativo dell'Ente.

OpenCity Labs configura in questa sezione la customer satisfaction (“Abilita verifica della soddisfazione utente” e “Entry point verifica della soddisfazione utente”).

Configurare lo stato del servizio

Lo stato del servizio sulla Stanza del cittadino non corrisponde automaticamente allo stato indicato nella scheda informativa del servizio sul sito web.

Nel caso di servizi non attivi, lo stato dovrà quindi cambiare sia su Stanza sia .

Accedi alla scheda "Dati generali" (1) del servizio e seleziona lo stato in cui si trova il servizio digitale (2).

Gli stati del servizio

Gli stati previsti sono:

  • bozza: il servizio è in lavorazione e non visibile agli utenti;

  • pubblicato o privato: il servizio è attivo;

  • non attivo: il servizio è sospeso e non visibile agli utenti;

  • : il servizio è pubblico per un certo periodo di tempo.

Programmare la pubblicazione di un servizio

In caso di servizi digitali attivi solamente per un determinato periodo dell'anno (es. un servizio di iscrizione all'asilo nido) puoi programmare la pubblicazione di un servizio mettendo lo stato "Programmato" e indicando un periodo di tempo ("Data di attivazione").

Una volta passata la data di cessazione del servizio, questo non è più attivabile dagli utenti.

Inserire allegati: il File SDC

Attualmente i tipi di allegato permessi sono: doc, docx, odt, pdf, xls, xlsx, ods, ppt, pptx, odp, csv, xml, rtf, abw, txt, jpeg, jpg, png, apng, webp, ico, gif, p7, p7m, xp7m, p7c, zip.

Di questi formati viene controllata sia l'estensione sia il MIME type.

Per chiedere all'utente l'inserimento di uno o più allegati, trascina nel modulo il componente "File Sdc".

Nella sezione "Data" del componente, puoi:

  • richiedere la protocollazione dell'allegato (1);

  • indicare il formato (2);

  • indicare le dimensioni previste (3).

Creare e configurare gli uffici

Gli uffici configurati su Stanza del Cittadino non corrispondo automaticamente a quelli presenti della sezione "Amministrazione" del sito web.

Per creare e configurare gli uffici, clicca sulla sezione "Uffici" (1) e seleziona la voce omonima (2).

Qui puoi:

  • ;

  • ;

  • .

Creare un ufficio

Per creare un nuovo ufficio, clicca sull'opzione "Crea nuovo ufficio" in basso a sinistra.

Modificare un ufficio

Per modificare un ufficio in elenco, clicca sull'opzione "Modifica".

Eliminare un ufficio

Per eliminare un ufficio, clicca sull'opzione "Elimina".

Non è possibile eliminare un ufficio a cui sono associati operatori con pratiche in carico.

Configurare un ufficio

In fase di creazione o modifica di un calendario, puoi modificare alcune informazioni, come:

  • gli operatori associati ("Operatori") - qui puoi indicare quali operatori fanno parte dell'ufficio;

  • i servizi gestiti dall'ufficio ("Servizi") - in questa sezione vengono visualizzati tutti i servizi digitali, anche quelli ;

  • il calendario associato all'ufficio ("Orario di apertura") - il dato è obbligatorio se si vuole attivare la funzione di prenotazione appuntamento per l'ufficio.

Impostare le scelte utente : select boxes e radio button

Come admin, disponi di due componenti che ti permettono di raccogliere le preferenze degli utenti durante la compilazione di un servizio:

  • ;

  • .

Select boxes

Per permettere all'utente di selezionare una o più opzioni del servizio, trascina nel modulo il componente "Select Boxes"

Una volta fatto, come per il , collocati nella sezione "Data" e compila la voce "Data source label" con le opzioni che l'utente dovrà indicare in fase di richiesta, specificando il nome (label) e il valore (value).

Il radio button

Per far scegliere all'utente una sola opzione tra quelle previste, trascina nel modulo il componente "Radio button".

Una volta fatto, collocati nella sezione "Data" e compila la voce "Data source label" con le opzioni che l'utente dovrà indicare in fase di richiesta, specificando il nome (label) e il valore (value).

Sia per la checkbox sia per il radio button, i valori indicati nella colonna value sono necessari per la gestione delle .

I pagamenti associati al servizio

Un servizio digitale può essere configurato in modo da prevedere un pagamento da parte del cittadino.

L'utente può effettuare un pagamento tramite l' usato dall'Ente oppure effettuare il pagamento tramite

Pagamento tramite pagoPA

La modalità di pagamento tramite pagoPA può essere definita in due modalità alternative:

  • : il cittadino effettua il pagamento durante il flusso di compilazione della pratica, prima dell’invio.

  • : il pagamento viene richiesto successivamente, tramite un avviso inviato dall’operatore, prima che la pratica venga accettata;

La piattaforma di OpenCity Italia è integrata con in uso agli Enti pubblici.

Pagamento tramite marca da bollo

Puoi configurare anche il pagamento delle marche da bollo, che possono essere:

  • : il pagamento viene effettuato dal cittadino durante la compilazione della pratica;

  • : l’operatore richiede il pagamento al cittadino prima dell’accettazione della pratica.

La funzione di pagamento dei bolli tramite pagoPA è possibile ma retivamente poco diffusa e dipende a seconda dei casi dalla presenza di una convenzione con Agenzia delle entrate e/o da una configurazione di una funzione multibeneficiario di PagoPA che deve essere resa disponibile dal partner tecnico PagoPA che assiste l'ente sul tema dei pagamenti. Detto ciò, diversi enti che usano OpenCity adottano la gestione del pagamento dei bolli tramite PagoPA

integrazione con pagoPA
marca da bollo
Pagamento anticipato
Pagamento posticipato
diversi intermediari di pagamento
Pagate in fase di richiesta
Pagate in fase di rilascio
Radio button
textfield
Nell'immagine viene riportata una logica basata sul tipo simple
Nell'immagine, l'azione prevede che il campo venga reso obbligatorio in base alla logica creata in precedenza
sulla scheda servizio
programmato
Nell'immagine, il servizio è attivo a partire dalla mezzanotte del 20 maggio 2025 fino alle undici e cinquantanove del 20 luglio 2025
select boxes
radio button
componente "Select"
relazioni tra componenti

Una checklist per la realizzazione di un servizio

Qui trovi la lista di attività da seguire per la realizzazione di un servizio digitale.

Capire

1

Analizzare il contesto e confrontarsi con gli attori chiave

2

Definire in modo chiaro gli obiettivi e quindi le aspettative

3

Mettere a fuoco il bisogno degli utenti al quale il servizio offre una risposta

4

Analizzare l’output finale del servizio (il beneficio che si offre agli utenti)

5

Decidere se progettare un nuovo servizio o partire da un modello a catalogo

6

Considerare le relazioni con altri servizi

Progettare

1

Analizzare vincoli e opportunità progettuali

2

Definire gli standard da adottare, che ci permettono di trovare soluzioni efficaci a problemi ricorrenti

3

Valutare l'integrazione con altre applicazioni

Puoi prevede l'utilizzo di dati provenienti da fonti esterne (PDND o ANPR) oppure integrare la piattaforma con altre applicazioni tramite API e Webhook

4

Disegnare i flussi

Mappare l'ecosistema del servizio permette di ricostruire il quadro generale degli elementi coinvolti e identificare eventualmente flussi alternativi

5

Descrivere gli scenari d'uso

Scrivi una descrizione precisa del servizio che può essere usata per confrontarsi con gli attori coinvolti

Prototipare

1

Classi dati

Fai una lista delle classi dati (componenti) coinvolte dal servizio, definendo quali componenti standard utilizzare e quali componenti custom sono necessari

2

Privacy

Scrivi l'informativa privacy del servizio

3

Pagamenti

Configura il flusso dei pagamenti, gli importi e la classificazione di bilancio

4

Autenticazione Definisci le modalità di autenticazione dell'utente che invia una richiesta

5

Protocollazione

Attiva la protocollazione delle pratiche

6

PDND

Attiva l'integrazione con piattaforma nazionale dati per acquisire dati certificati

7

Messaggi

Configura i messaggi previsti dal servizio e attivare l'integrazione con app IO

8

Componenti custom e logiche

Crea eventuali componenti custom e definisci le logiche e i controlli sui campi

9

Integrazioni custom

Realizza un'eventuale integrazione custom per utilizzare dati provenienti dall'esterno o per esportare dati

10

Scheda servizio

Assicurati che la scheda del servizio sia scritta in modo semplice e contenga tutte le informazioni relative al servizio

11

Esegui i test finali

12

Permessi e formazione

Verifica che gli operatori abbiano i permessi di utilizzo e le istruzioni di base su come procedere

creare un nuovo ufficio
modificare un ufficio esistente
eliminare un ufficio esistente
in bozza o momentaneamente sospesi

Impedire l'invio di più domande

Come admin puoi impedire che un utente invii più di una richiesta per lo stesso servizio, facendo una verifica sul codice fiscale.

Trascina un componente Textfield all'interno del modulo

Una volta fatto:

  • modifica il codice JSON del campo che hai inserito;

  • inserisci il seguente codice:

{
  "label": "unique_id",
  "calculateValue": "value = data.applicant.data.fiscal_code.data.fiscal_code",
  "key": "unique_id",
  "type": "hidden",
  "input": true,
  "tableView": false
}

ATTENZIONE!

La modifica non è retroattiva: nel caso di un servizio modificato in produzione, non viene tenuto conto delle richieste inoltrate prima della modifica: un utente che avesse inoltrato una richiesta prima della modifica potrebbe comunque inoltrarne una seconda.

Fare calcoli

Nella sezione "Data" di un componente di tipo testuale (textfield o text area), è possibile effettuare calcoli automatici in base al valore indicato in altri component.

La funzione torna utile nei casi in cui sia necessario calcolare:

  • calcolare il punteggio per una graduatoria (magari per un servizio di iscrizione all'asilo nido)

sum = 0
sum += (data.work_condition === "occupato") ? 5 : 0
sum += (data.tutor_work_condition === "occupato") ? 5 : 0
sum += (data.minor_invalid === "si") ? 6 : 0
sum += (parseFloat(data.isee_value) <= 21000) ? 4 : 0
sum += (parseInt(data.minors_number) >= 0) ? parseInt(data.minors_number) : 0
sum += (data.other_minors === "si") ? 0 : 3
sum += (data.single_tutor === "si") ? 4 : 2
sum += (data.pregnancy_condition === "si") ? 4 : 0
value = sum
  • i giorni di esposizione della segnaletica (per un servizio di occupazione temporanea del suolo pubblico).

initialDate = moment(data.initial_date, 'DD/MM/YYYY')
finalDate = moment(data.final_date, 'DD/MM/YYYY')
value = finalDate.diff(initialDate, 'days')

Calcolare un importo

Questa funzione può essere utilizzata anche nei casi in cui sia necessario calcolare un importo personalizzato.

Per farlo, trascina un componente "Hidden" nel modulo del servizio e nella sezione "API" del componente inserisci "payment_amount" alla voce "Property name"

Successivamente, nella sezione "Data", compila il campo "Calculated value" con il codice JavaScript di calcolo.

Nell'esempio riportato nelle immagini, che riguarda il servizio di Permesso per passo carrabile, l'utente dovrà pagare 50 euro nel caso in cui fosse unico proprietario dell'immobile o 30 euro nel caso in cui fosse amministratore. Per tutti gli altri casi, non sono previsti pagamenti.

if (data.in_virtue === "unico") {  
  value = 50
} else if (data.in_virtue === "amministratore") { 
  value = 30
} else { 
  value = 0
}

Relazione tra i dati: i conditional

Puoi costruire relazioni tra componenti o tra dati presenti all’interno di componenti. Una relazione può essere:

  • semplice: la condizione di comparsa dipende da un solo componente o dato;

  • avanzata: la condizione di comparsa dipende da più componenti o dati.

In questo modo puoi gestire i set di dati in modo tale che vengano visualizzati in base a come l'utente ha compilato la pratica.

Per esempio, puoi mettere in relazione un componente “Scuole” e un componente “Classi” e alla selezione di una determinata scuola nel primo componente, il secondo mostra solamente le classi che fanno parte di quella scuola e non di altre.

Condizionale semplice

Nella sezione "Conditional" di un componente devi indicare:

  • se il componente deve o non deve apparire quando la condizione è vera (1);

  • il componente a cui fare riferimento per la condizione (2);

  • il vale da controllare dentro il componente indicato (3).

Nella maggior parte dei componenti, il valore (value) è indicato nella sezione “Data”.

Per i campi testuali ( o text area), il valore è il dato inserito dall’utente in fase di compilazione.

Condizionale avanzato

Nella sezione "Conditional", collocati alla voce "Advanced conditions" e inserisci la condizione in formato JavaScript.

Nell'esempio riportato nelle due immagini, il codice JavaScript inserito prevede che il campo compaia nei casi in cui l'utente richieda la modifica o il rinnovo di un permesso esistente:

Usare le API - un esempio pratico

Puoi usare il condizionale avanzato anche in caso di .

Nell'esempio riportato, il codice JavaScript riportato effettua una verifica condizionale sulla base di alcune categorie e tipi di strade, per determinare se mostrare o meno un banner di errore.

Questo codice verifica che la categoria sia "strade" e che il tipo sia uno di quelli previsti e controlla se la strada selezionata corrisponde a una delle circoscrizioni valide restituite dall'API.

Se non corrisponde a nessuna, allora imposta show = true, per mostrare un avviso che avverte il cittadino.

Abilitare gli operatori

Per creare e configurare gli operatori della piattaforma, clicca su "Uffici" (1) e seleziona la voce "Operatori" (2).

Qui puoi:

  • visualizzare la lista degli operatori;

  • nuovi operatori;

  • gli operatori;

  • ;

  • ;

  • di appartenenza di un operatore;

  • .

Creare un operatore

Per creare un operatore, clicca sul pulsante "Aggiungi" in fondo a sinistra (1) e sceglie l'opzione "Crea nuovo operatore" (2).

Elimina un operatore

Una volta selezionato l'operatore da eliminare, clicca sui tre pulsanti a destra del nome (1) e scegli la voce "Elimina" (2).

Non è possibile eliminare un operatore che ha in carico delle pratiche, che andranno quindi prima di cancellare l'utente.

Abilitare o disabilitare un operatore ai servizi

Una volta selezionato l'operatore, clicca sui tre pallini a destra del nome (1) e seleziona la voce "Modifica" (2).

Successivamente, seleziona la sezione "Servizi" (1) e indica i servizi a cui abilitare l'utente (2).

Abilitare o disabilitare un operatore ai calendari

Una volta scelto l'operatore, clicca sui tre pallini a destra del nome (1) e seleziona la voce "Modifica" (2).

Successivamente, seleziona la sezione "Calendari" (1) e indica i calendari a cui abilitare l'operatore (2).

Indicare l'ufficio di appartenenza

Una volta scelto l'operatore, clicca sui tre pallini a destra del nome (1) e seleziona la voce "Modifica" (2).

Successivamente, seleziona la sezione "Uffici" (1) e indica l'ufficio di appartenenza dell'operatore (2).

Assegnare o togliere il ruolo di Manager

Un operatore con il può configurare le altre utenze da operatore.

Una volta scelto l'operatore, clicca sui tre pallini a destra del nome (1) e seleziona la voce "Rendi manager" (2).

Integrare un servizio digitale con la Piattaforma Digitale Nazionale Dati

Trascina il componente nel modulo del servizio.

Nella sezione "API" del componente aggiungi:

  • la proprietà profile_block con valore "true";

  • la proprietà eservice con il corretto uuid;

  • la proprietà format con il corretto formato.

Tabella di configurazione della PDND

Gli uuid e i formati corretti che devi inserire sono indicati in questa tabella:

Nome del nested form
Property name
Uuid e-service
Formato

La protocollazione delle pratiche di un servizio

La Stanca del Cittadino effettua diverse interazioni con il sistema di protocollo, ma tutte seguono una logica comune.

Le interazioni avvengono in seguito ad alcune azioni da parte cittadini e degli operatori:

  • Invio di una pratica da parte del cittadino (con relativi documenti allegati);

  • Invio di una richiesta di integrazioni da parte di un operatore;

  • Invio di una integrazione da parte del cittadino;

  • Approvazione/rifiuto di una pratica.

Per ognuna di queste operazioni viene prodotto un documento, mentre la configurazione standard di OpenCity Italia prevede l’archiviazione di tutti i documenti senza necessità di alcuna attività operativa da parte del funzionario: i documenti vengono raccolti in un unico fascicolo relativo ad un servizio per ciascun anno solare

La piattaforma di OpenCity Italia è in uso agli Enti pubblici.

integrata con diversi sistemi di protocollazione
show = (data.request_type === "rinnovo" || data.request_type === "modifica")
const optionsToCheck = [
  "strade_circoscrizione_1",
  "strade_circoscrizione_2",
  "strade_circoscrizione_3",
  "strade_circoscrizione_4",
  "strade_circoscrizione_5",
  "strade_circoscrizione_6",
  "strade_circoscrizione_7",
  "strade_circoscrizione_8",
  "altre_strade_DS"
]

if (data.category !== "strade" || !optionsToCheck.includes(data.type.value)) {
  show = false
  return
}

async function fetchUrl(url, options = {}) {
  try {
    const response = await fetch(url, options);

    if (!response.ok) {
      throw new Error(`HTTP error! Status: ${response.status} ${response.statusText}`);
    }
  
    const jsonData = await response.json();
    instance.root.streetOptions = jsonData.items.map(crc => crc.cod_circoscr_lavori)
    
  } catch (error) {
    console.error(`Fetch failed for ${url}:`, error.message);
    return { error: true, message: error.message };
  }
}

let savedStreet = instance.root.savedStreet
let streetOptions = instance.root.streetOptions

if (savedStreet !== data.address?.name) {
  const name = data.address?.name
  const url = `https://www.comune.verona.it/api/openapi/dataset/circoscrizioni?limit=50&matched_name=${name}&sortDir=asc`
  fetchUrl(url)
  instance.root.savedStreet = name
} else if (streetOptions) {
  const chosenOption = data.type?.value
  show = chosenOption && streetOptions.length > 0 && !streetOptions.some(option => chosenOption.includes(option))
}
textfield
integrazione con API
L'esempio riportato indica due date che devono comparire solo nel caso in cui il cittadino abbia indicato una durata temporanea del permesso di passo carrabile.

13/03/2025

Iscrizione alla scuola dell'infanzia

🐞Correzioni di testo

  • Sezione "I tuoi figli"

    • Prima: "Inserisci i dati dello studente che beneficerà del contributo"

    • Ora: "Inserisci i dati di tutti i figli del nucleo familiare: li salveremo nel tuo profilo e li utilizzeremo per precompilare le future pratiche"

  • Sezione "Beneficiario"

    • Prima: "Inserisci i dati del minore per cui richiedi il contributo"

    • Ora: "Seleziona il figlio che vuoi iscrivere"

🌄Aggiornamenti di etichette e testi

  • Sezione "Beneficiario" – Menu a tendina

    • Prima: "Minore che vuoi iscrivere"

    • Ora: "Figlio che vuoi iscrivere"

  • Sezione "Minori del nucleo familiare"

    • Prima: "Indica i minori del nucleo familiare"

    • Ora: "Trovi qui sotto il numero di minori del tuo nucleo familiare. Specifica se qualcuno è già iscritto alla scuola dell'infanzia. Se nella sezione 'I tuoi figli' hai indicato solo il figlio che stai iscrivendo, torna indietro per aggiungere gli altri figli"

  • Sezione "Minori del nucleo familiare" – Blocco di testo

    • Prima: "Altri minori già iscritti alla scuola dell'infanzia - Indica se sono presenti altri minori già iscritti alla scuola dell'infanzia"

    • Ora: "Altri figli iscritti alla scuola dell'infanzia - Indica se hai altri figli minori già iscritti alla scuola dell'infanzia"

  • Sezione "Minori del nucleo familiare" – Radio button

    • Prima: "Sono presenti altri minori già iscritti alla scuola dell'infanzia?"

    • Ora: "Hai altri figli già iscritti alla scuola dell'infanzia?"

  • Sezione "Minori del nucleo familiare" – Blocco di testo

    • Prima: "Dati degli altri minori già iscritti alla scuola dell'infanzia - Indica gli altri minori già iscritti alla scuola dell'infanzia"

    • Ora: "Dati degli altri figli iscritti alla scuola dell'infanzia - Indica gli altri figli già iscritti alla scuola dell'infanzia"

  • Sezione "Minori del nucleo familiare" – Menu a tendina

    • Prima: "Altri minori già iscritti alla scuola dell'infanzia"

    • Ora: "Altri figli già iscritti alla scuola dell'infanzia"

🐞Configurazioni tecniche

  • Resa obbligatoria la selezione nel menu a tendina "Altri figli già iscritti alla scuola dell'infanzia"

Iscrizione al trasporto scolastico

🐞Correzioni di testo

  • Sezione "I tuoi figli"

    • Prima: "Inserisci i dati dello studente che beneficerà del contributo"

    • Ora: "Inserisci i dati di tutti i figli del nucleo familiare: li salveremo nel tuo profilo e li utilizzeremo per precompilare le future pratiche"

  • Sezione "Beneficiario"

    • Prima: "Inserisci i dati del minore per cui richiedi il contributo"

    • Ora: "Seleziona il figlio che vuoi iscrivere"

🌄Aggiornamenti di etichette e testi

  • Sezione "Beneficiario" – Menu a tendina

    • Prima: "Minore che vuoi iscrivere"

    • Ora: "Figlio che vuoi iscrivere"

  • Sezione "Studenti iscritti a scuola"

    • Prima: "Studenti iscritti a scuola"

    • Ora: "Altri figli iscritti a scuola"

  • Sezione "Altri figli iscritti a scuola"

    • Prima: "Indica se sono presenti altri studenti iscritti a scuola"

    • Ora: "Indica se hai altri figli iscritti a scuola"

  • Sezione "Altri figli iscritti a scuola" – Radio button

    • Prima: "Sono presenti altri studenti iscritti a scuola?"

    • Ora: "Hai altri figli iscritti a scuola?"

  • Sezione "Altri figli iscritti a scuola" – Blocco di testo

    • Prima: "Dati degli altri studenti iscritti a scuola - Indica gli altri studenti iscritti a scuola"

    • Ora: "Dati degli altri figli iscritti a scuola - Indica gli altri figli iscritti a scuola. Se nella sezione "I tuoi figli" hai indicato solo il figlio che stai iscrivendo, torna indietro per aggiungere gli altri figli"

  • Sezione "Altri figli iscritti a scuola" – Datagrid

    • Prima: "Dati degli altri studenti già iscritti a scuola"

    • Ora: "Dati degli altri figli già iscritti a scuola"

  • Sezione "Altri figli iscritti a scuola" - Menu a tendina

    • Prima: "Altro studente già iscritto"

    • Ora: "Altro figlio già iscritto"

🐞Configurazioni tecniche

  • Resa obbligatoria la selezione nel menu a tendina "Altro figlio già iscritto"

Iscrizione alla mensa scolastica

🐞Correzioni di testo

  • Sezione "I tuoi figli"

    • Prima: "Inserisci i dati dello studente che beneficerà del contributo"

    • Ora: "Inserisci i dati di tutti i figli del nucleo familiare: li salveremo nel tuo profilo e li utilizzeremo per precompilare le future pratiche"

  • Sezione "Beneficiario"

    • Prima: "Inserisci i dati del minore per cui richiedi il contributo"

    • Ora: "Seleziona il figlio che vuoi iscrivere"

🌄Aggiornamenti di etichette e testi

  • Sezione "Beneficiario" – Menu a tendina

    • Prima: "Minore che vuoi iscrivere"

    • Ora: "Figlio che vuoi iscrivere"

  • Sezione "Studenti iscritti a scuola"

    • Prima: "Studenti iscritti a scuola"

    • Ora: "Altri figli iscritti a scuola"

  • Sezione "Altri figli iscritti a scuola"

    • Prima: "Indica se sono presenti altri studenti iscritti a scuola"

    • Ora: "Indica se hai altri figli iscritti a scuola"

  • Sezione "Altri figli iscritti a scuola" – Radio button

    • Prima: "Sono presenti altri studenti iscritti a scuola?"

    • Ora: "Hai altri figli iscritti a scuola?"

  • Sezione "Altri figli iscritti a scuola" – Blocco di testo

    • Prima: "Dati degli altri studenti iscritti a scuola - Indica gli altri studenti iscritti a scuola"

    • Ora: "Dati degli altri figli iscritti a scuola - Indica gli altri figli iscritti a scuola. Se nella sezione "I tuoi figli" hai indicato solo il figlio che stai iscrivendo, torna indietro per aggiungere gli altri figli"

  • Sezione "Altri figli iscritti a scuola" – Datagrid

    • Prima: "Dati degli altri studenti già iscritti a scuola"

    • Ora: "Dati degli altri figli già iscritti a scuola"

  • Sezione "Altri figli iscritti a scuola" - Menu a tendina

    • Prima: "Altro studente già iscritto"

    • Ora: "Altro figlio già iscritto"

🐞Configurazioni tecniche

  • Resa obbligatoria la selezione nel menu a tendina "Altro figlio già iscritto"

OC-Residenza

residenza

a6fcd036-f1a2-4df5-b986-7410e9e0e97a

residenza

OC-Figli

oc_figli

c88d7efe-84a1-43c5-9edc-07f18a577289

oc_figli

residenza(archetipo)

residenza_archetipo

a6fcd036-f1a2-4df5-b986-7410e9e0e97a

residenza_archetipo

OC-Genitori

oc_genitori

c88d7efe-84a1-43c5-9edc-07f18a577289

oc_genitori

OC-Coniuge

oc_coniuge

c88d7efe-84a1-43c5-9edc-07f18a577289

oc_coniuge

OC-Nucleo familiare

oc_nucleo_familiare

c88d7efe-84a1-43c5-9edc-07f18a577289

oc_nucleo_familiare

Nested form
creare
eliminare
abilitare un operatore ai servizi
abilitare un operatore ai calendari
indicare l'ufficio
assegnare il ruolo di Manager
assegnate ad altri operatori
ruolo di Manager

I nested form

La gestione e l'aggiornamento di questi componenti è centralizzato e a carico di OpenCity Italia

La piattaforma permette di utilizzare un set di componenti standard, denominati nested forms, che permettono di raccogliere dati in modo consistente tra i diversi servizi

Attraverso l'utilizzo di questi componenti, possiamo raccogliere dati in modo consistente tra i diversi servizi, mettendo a disposizione degli utenti funzioni come:

  • funzioni di precompilazione dati tra i servizi;

  • acquisizione di dati certificati via PDND;

  • visualizzazione e aggiornamento dei dati nel profilo utente;

  • funzioni di acquisizione dati terze parti (es. ISEE).

OpenCity Italia mette a disposizione un elenco fornito di nested forms da utilizzare; per usufruire di queste funzioni, però, si consiglia di utilizzare quelli contrassegnati con "OC" e elencati qui:

Dati raccolti
Nome del nested form

Anagrafica richiedente

OC - Richiedente

Anagrafica beneficiario persona fisica

OC - Beneficiario

Anagrafica beneficiario soggetto giuridico

OC - Soggetto giuridico

Anagrafica figli

OC - Figli

Anagrafica coniuge

OC - Coniuge

Anagrafica genitore

OC - Genitori

Delega

OC - Delega

Residenza

OC - Residenza

Esperienze lavorative

OC - Esperienze lavorative

Titoli di studio

OC - Titoli di studio

ISEE

OC - ISEE

Dati di accredito

OC - IBAN

Veicoli

OC - Veicoli OC - Veicoli (semplificato)

Immobili

OC - Immobili

Informativa privacy

OC - Informativa privacy

Nucleo familiare

OC - Nucleo familiare

Usare i nested form all'interno del modulo

Dalla colonna dei componenti seleziona quello chiamato "nested form".

Una volta trascinato nel modulo, seleziona nella voce "Form" del componente quello che vuoi utilizzare.

Una volta selezionato, disattiva la voce "Save as reference".

Integrare un servizio digitale con i pagamenti

Entrambi i metodi di pagamento previsti sono configurabili in sezioni dedicate del servizio.

Configurare un pagamento tramite pagoPA

Accedi alla scheda "Pagamenti" del servizio (1) e specifica la tipologia di pagamento (2):

Le tipologie previste sono:

  • immediato: l'utente effettua il pagamento durante la compilazione della pratica;

  • posticipato: l'operatore inoltra la richiesta di pagamento durante l'accettazione della pratica.

Scegliendo la tipologia "immediato" si attiva anche la funzione di richiesta di pagamento posticipata.

Una volta scelta la tipologia, indica l'importo previsto dal servizio.

Infine, abilita uno degli intermediari di pagamento in elenco (1) e configura i parametri previsti (2).

Gli intermediari di pagamento in elenco sono quelli che hai attivato nelle configurazioni generali della piattaforma.

Configurare un importo dinamico

Per inserire un importo dinamico, inserisci un campo textfield all'interno del modulo e attiva la funzione hidden.

Nella sezione API del componente, alla voce "Property Name" inserisci "payment_amount".

Successivamente, collocati nella sezione "Data", disattiva la funzione "Clear value when hidden" (1) e alla voce "Calulated Value" inserisci il codice JavaScript di calcolo (2).

Ad esempio, in un servizio con esenzioni di pagamento, puoi configurare il pagamento dinamico in modo tale che i richiedenti aventi diritto di esenzione non paghino nulla, mentre tutti gli altri paghino 15 euro.

if (data.exempt) {
  value = 0;
} else {
  value = 15;
}

Personalizzare la causale di pagamento

La causale di pagamento è normalmente composta dall'identificativo della pratica e dal codice fiscale del richiedente.

Per personalizzare il valore della causale di pagamento, inserisci un campo text field e attiva la funzione hidden.

Nella sezione API del componente, alla voce "Property Name" inserisci "payment_description".

Indica il numero massimo di caratteri alla voce "Maximum Length" della sezione "Validation".

Il limite varia a seconda dell'intermediario di pagamento integrato: ad esempio, MyPay prevede un limite di 60 caratteri, per evitare che la causale venga troncata all'interno dell'avviso di pagamento pdf

Successivamente, disattiva la funzione "Clear value when hidden" nella sezione "Data" (1) e alla voce "Calculated value" inserisci il codice JavaScript di personalizzazione della causale (2).

Ad esempio, in un servizio di richiesta di sepoltura di un defunto, puoi configurare la causale di pagamento in modo tale che, se il richiedente è un parente, riporti nome e cognome del richiedente; in tutti gli altri casi, deve riportare nome e cognome sia del richiedente sia del beneficiario.

if (["parente"].includes(data.for_whom)) {
  value = `Diritti di segreteria per l'autorizzazione alla sepoltura per ${data.applicant.data.completename.data.name} ${data.applicant.data.completename.data.surname}`
} else {
  value = `Diritti di segreteria per l'autorizzazione alla sepoltura di ${data.applicant.data.completename.data.name} ${data.applicant.data.completename.data.surname} per ${data.beneficiary.data.given_name} ${data.beneficiary.data.family_name}`
}

Eventualmente, puoi inserire la causa personalizzata nel campo "Default value" della sezione "Data".

Configurare un pagamento in bolli

Accedi alla scheda "Bolli" del servizio (1) e aggiungi uno o più bolli (2).

Dopo averli aggiunti, configura i bolli indicando:

  • causale e identificativo;

  • importo;

  • fase di immissione.

Gli appuntamenti associati a un servizio

Un servizio digitale può essere configurato in modo da prevedere una fase di prenotazione appuntamento da parte del cittadino presso uno degli uffici dell'Ente.

Per farlo, devi avere a disposizione un calendario nella sezione dedicata alla configurazione della Prenotazione appuntamenti e utilizzare il componente corretto.

Configurare un calendario

Le funzioni di configurazione a disposizione di un admin sono le stesse

Clicca su "Funzionalità avanzate" e scegli la voce "Prenotazione appuntamenti" per accedere all'elenco dei calendari.

Qui puoi:

  • creare un nuovo calendario (1);

  • modificare un calendario esistente (2);

  • eliminare un calendario in elenco (3).

Quando modifichi o crei un calendario, devi configurare:

  • il titolo del calendario;

È consigliabile che il nome del calendario sia identico o quantomeno simile a quello dell'ufficio a cui viene associato, così che sia facilmente riconoscibile.

Ad esempio, non è consigliabile chiamare un calendario "Prenotazione appuntamento"

  • il proprietario e la mail di contatto;

Di default, il proprietario è l'amministratore di Area personale che ha creato il calendario. Puoi usare il campo per indicare l'utenza usata dal responsabile dell'ufficio a cui è stato associato il calendario. Il proprietario non ha più permessi o funzioni rispetto agli altri utenti, si tratta solamente di un dato informativo.

Nella mail di contatto, invece, puoi inserire un eventuale indirizzo comune in uso al tuo ufficio. A questo indirizzo, infatti, arriveranno le notifiche di apertura e modifica di un appuntamento.

  • il luogo dell'appuntamento;

Nel campo del luogo devi inserire l'indirizzo a cui dovrà presentarsi il cittadino per l'appuntamento.

L'indirizzo viene indicato al cittadino sia in fase di compilazione sia nella notifica di riepilogo successiva all'invio della richiesta.

Dato che si tratta di un campo testuale, puoi usarlo per aggiungere delle informazioni utili al cittadino, ad esempio il piano corretto della palazzina in cui si trova l'ufficio.

  • gli operatori abilitati al calendario: in ogni calendario trovi una lista con tutti gli operatori della piattaforma. Per abilitarne uno alla gestione degli appuntamenti e alla configurazione del calendario, clicca sulla checkbox alla sinistra del nome;

  • disponibilità e preavviso di una prenotazione: puoi da quando (1) e per quanto tempo (2) l'utente vedrà il calendario prenotabile. Puoi anche indicare con quanto giorni di anticipo è possibile disdire l'appuntamento (3);

Nell'esempio riportato, il cittadino visualizza gli appuntamenti che sono disponibili a partire dalla prossima settimana ("una settimana prima") per i trenta giorni successivi (punto 2). Potrà disdire l'appuntamento che ha preso fino a tre giorni prima dalla data indicata (punto 3). Il giorno prima riceverà comunque una notifica di promemoria dell'appuntamento.
  • la durata della bozza, in minuti. Superati i minuti indicati, la bozza viene automaticamente cancellata e lo slot torna ad essere libero;

"Estensione massima della bozza (in giorni)" è una funzione utilizzabile nel caso in cui la prenotazione di un appuntamento preveda un pagamento di conferma. La bozza rimane in sospeso fino a pagamento avvenuto; superato il periodo in giorni, lo slot torna libero.

Precompilazione dei dati

La piattaforma OpenCity Italia permette all'utente di utilizzare dati di pratiche già inviati per la compilazione di nuove istanze, senza la necessità di inserirli nuovamente (once only). Tramite integrazione con PDND, inoltre, è possibile acquisire dati certificati, eliminando la necessità di controlli successivi da parte degli operatori.

Configurazione del once only

Il once only si attiva solamente all'invio della richiesta

Per attivare questa funzione, è necessario utilizzare i . Una volta trascinato il componente nel modulo, devi:

  • nella sezione "Display", specificare la label del componente;

  • nella sezione "API", inserire la chiave corretta;

  • nella sezione "API", alla voce "Custom properties" aggiungere la proprietà profile_block con valore "true";

Tabella di configurazione del once only

Le Label e le chiavi API corrette che devi inserire sono riportate in questo elenco:

Nome
Label
Chiave API

Integrazione con PDND

La piattaforma ti permette di e quindi di, utilizzando dati certificati.

OC - Richiedente

Il richiedente

applicant

OC - Beneficiario

Il beneficiario

beneficiary

OC - Soggetto Giuridico

Dati dell'azienda

legal_entities

OC - Residenza

Il tuo domicilio

home_location

OC - Esperienze lavorative

Le tue esperienze lavorative

work_experience

OC - Titoli di studio

I tuoi titoli di studio

educational_occupational_credential

OC - ISEE

Il tuo ISEE

economic_situation_indicator

OC - ICEF

Il tuo ICEF

economic_situation_indicator_tn

OC - VSE

Il tuo VSE

economic_situation_indicator_adige

OC - IBAN

I tuoi dati di accredito

bank_account

OC - Figli

I tuoi figli

children

OC - Veicoli

I tuoi veicoli

vehicles

OC - Immobili

I tuoi immobili

real_estate

OC - Coniuge

Il tuo congiunto

spouse

OC - Genitori

I tuoi genitori

parents

OC - Nucleo familiare

Il tuo nucleo familiare

family_unit

nested form
utilizzare dati certificati da PDND
integrare il servizio digitale con la Piattaforma Digitale Nazionale Dati

Configurare servizi a più fasi

La piattaforma consente la configurazione di servizi digitali suddivisi in più fasi, tipicamente due. In questa modalità, la seconda istanza del servizio è in grado di recuperare e riutilizzare i dati inseriti nella prima fase, favorendo la continuità del processo e la gestione da parte degli operatori.

In questo capitolo viene illustrato, a scopo esemplificativo, il caso di un servizio di iscrizione all’asilo nido, strutturato in due pratiche distinte:

  • una prima pratica di richiesta di iscrizione;

  • una seconda pratica di conferma dell’iscrizione, che recupera in automatico alcuni dei dati forniti durante la prima fase.

Per servizi di questo tipo, consigliamo l'uso di componente "Select" in entrambe le istanze.

Inserisci un campo "Select"

Trascina all'interno del modulo un componente "Select" e nella sezione "Data" inserisci l'opzione "URL" nel campo "Data Source Type"

Successivamente, inserisci l'endpoint API da utilizzare nella voce "Data Source URL".

Assicurati se l'API utilizzata sia o meno protetta da autenticazione.

Nell'esempio riportato, la select è stata configurata in modo tale da recuperare dal tenant corrente (data.base_url) tutte le pratiche accettate (status=7000) di un servizio di iscrizione (service_identifier=oc-pnrr-2):

{{data.base_url}}/lang/api/applications?version=2&status=7000&service_identifier=oc-pnrr-2

Nel campo "Request headers" compila la colonna "Key" con "Authorization" e la colonna "Value" con "Bearer {{data.token}}"

Compila il campo "Data Path" con il valore "data" (1) e seleziona la voce "Autotype" nel campo "Storage Type" (2)

Infine, scegli il valore da mostrare alla voce "Item template".

Nell'immagine, il campo è stato impostato in modo tale da recuperare il nome (given_name) e il cognome (family_name) di un minore, inseriti in una pratica precedente e selezionati da una select dedicata (item.data ["select_child"])

Configura il token

Aggiungi al modulo un componente di tipo Hidden e, nella sezione "Data", configura il campo "Calculated Value" inserendo il codice JavaScript dedicato alla chiamata API.

async function get_data() {
  window.FormioHelper.authenticatedCall("session-auth")
  .then(
    function(promise) {
      console.log(promise)
      instance.setValue(promise.token)
    })
}

if (!data.token) {
  get_data()
}

console.log(value)

Imposta l'origine della URL

Aggiungi al modulo un campo di tipo Hidden e, nella sezione "Data", configura il campo "Calculated Value" inserendo il codice JavaScript dedicato.

value = window.location.origin

Popolare un form con dati provenienti da API

Per utilizzare endpoint API esterni è necessario fare inizialmente riferimento a OpenCity Italia, in modo tale da sbloccare il CSP (Content Security Policy) nel caso in cui l'Ente intenda utilizzare API non protette da autenticazione sia API protette da autenticazione.

La funzione può essere utilizzata per recuperare, all'interno del modulo, dati provenienti da un'altra istanza.

Come admin puoi configurare alcuni campi (es. Select o Textfield) in modo tale che vengano compilati con dati presi dalle API.

Configurare una select con dati presi dalle API

Nella sezione "Data" del componente, configura la voce "Data source type" con l'opzione URL

Successivamente inserisci l'endpoin API da utilizzare alla voce "Data source url"

Alla voce "Storage type" indica il dato da riportare nella select (è consigliabile usare l'opzione "autotype", in modo da predere tutto l'oggetto restituito dall'API)

Infine, scegli il valore da mostrare alla voce "Item template".

È consigliabile compilare anche il campo "Limit" e indicare un numero massimo di item da visualizzare.

Più alto è il valore indicato più tempo la select ci metterà a caricare gli item; è quindi consigliabile indicare un massimo di 50

Configurare un text field con i dati presi da API

Nella sezione "Data" del componente, compila la voce "Calculated value" con un codice Json contentente l'URL API:

Qui trovi un codice di esempio in cui vengono richiamati i dati di un'utenza TARI basandoci sul codice fiscale del richiedente

async function get_data(url, token) {
    try {
        const response = await fetch(url, {
            method: 'GET', 
            headers: {
                'Authorization': `Bearer ${token}`,
                'Content-Type': 'application/json'
            }
        })

        if (!response.ok) {
            throw new Error(`HTTP error! status: ${response.status}`)
        }

        const data = await response.json() // Parse JSON response
        instance.setValue(data.contract_code)
    } catch (error) {
        instance.setValue("ERRORE")
        console.error('Error fetching data:', error)
        throw error // Optionally re-throw the error for further handling
    }
}

if (!value && data?.applicant?.data.fiscal_code?.data?.fiscal_code && data?.token) {
  get_data(`https://govway.comune.bugliano.pi.it/govway/Ente/TARI/v1/getContractCode.php?cf=${data.applicant.data.fiscal_code.data.fiscal_code}`, data.token)
}

API non protette da autenticazione

Per popolare un form, puoi utilizzare API non protette da autenticazione.

In questo caso, oltre allo sblocco di CSP da parte di OpenCity Italia, è necessario che le API utilizzate siano pubbliche e raggiungibili.

API protette da autenticazione

Dataset e micro servizi esterni alla piattaforma possono essere facilmente integrati tramite il flusso di autenticazione basato su JWT (JSON Web Token) e JWKS (JSON Web Key Set)

Diagramma del flusso di autenticazione con JWT e JWKS

Questo flusso di autenticazione prevede alcuni passaggi chiave e interazioni tra:

  • client (browser dell'utente)

  • area personale

  • micro servizio esterno

Di seguito il processo punto per punto:

1. Il client richiede il token

Il client invia una richiesta all'area personale per ottenere un JWT, spesso includendo le credenziali dell'utente o altre forme di autorizzazione.

Come descritto nella sezione Single Sign-On è possibile per un utente autenticato richiedere un token di autenticazione per la propria sessione.

Questa operazione può essere effettuata facendo una chiamata alle API:

oppure come utente non autenticato effettuando una chiamata POST alle API

curl --request POST \
  --url https://servizi.comune.bugliano.pi.it/lang/api/auth \
  --header 'Content-Type: application/json' \
  --data '{
	"username": "username",
	"password": "password"
}'

2. L'area personale rilascia il token

L'area personale autentica il client, genera un JWT e lo firma con una chiave privata.

Il token viene quindi restituito al client.

{
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6InNkYy1xYSJ9.eyJpYXQiO.c2VybmFtZSI6ImFkbWluIiwiaWQiOiI2ZmZkZWRkZi04NmZhLTRjYmEtODUzNC05YTBlNjZmZTNlYmYiLCJ0ZW[...]5hbnRfaWQiOiI2MGUzNWYwMi0xNTA5LTQwOGMtYjEwMS0zYjFhMjgxMDkzMjkifQ.lFe0MR-LAj[...]RjoVvqwk3OX23T642ETu8PUy8sFaVRf1oM1qAnPhLEpnOcrIQY65mpKw6mrJ1rzZM5OVvEeOc4xxmtgcBOfMEBJo_Dw1pMfZHOv2S1S50Zr9XNxk0LcfWjXGdC7wy81eF7UuF-3cX9W"
}

3. Il client richiede la risorsa al micro servizio esterno:

Il client invia una richiesta al micro servizio esterno per accedere a una risorsa protetta, includendo il JWT nell'intestazione Authorization.

curl --request GET \
  --url '{Url API micro servizio esterno}' \
  --header 'Authorization: Bearer {JWT Token}'

4. Il micro servizio esterno convalida il token

Per verificare la validità del token il micro servizio esterno deve:

  • Estrarre il JWT dalla richiesta

  • Recuperare il JWKS dall'area personale, il JWKS contiene le chiavi pubbliche necessarie per verificare la firma del JWT.

  • Verificare la firma del JWT e convalidare le sue richieste

L'area personale espone il JWKS all'indirizzo:

https://api.stanzadelcittadino.it/.well-known/jwks.json

5. Accesso concesso/negato:

In base alla validità del JWT il micro servizio esterno concede o nega l'accesso alla risorsa richiesta.

Oltre alla validità del token si possono verificare le affermazioni in esso contenute.

Il payload del token prodotto dall'area personale presenta delle informazioni utili a capire se quello specifico utente oltre ad avere un token valido ha i permessi per ottenere la risorsa richiesta.

Di seguito un esempio di payload del token

{
  "iat": 1718278670,
  "exp": 1719142670,
  "roles": [
    "ROLE_CPS_USER",
    "ROLE_USER"
  ],
  "username": "BNRMHL75C06G702B",
  "id": "5b00796e-ef10-4c98-b9f5-b0f7ffd7a17d",
  "tenant_id": "60e35f02-1509-408c-b101-3b1a28109329"
}

Un esempio pratico

Qui trovi un esempio dettagliato di un'integrazione di un modulo Opencity Italia che attinge a una API protetta mediante l'API gateway opensource GovWay di Link.it

Validazione dei dati

La piattaforma permette funzioni di validazione dei dati

Obbligatorietà dei contenuti

Per rendere la compilazione di un campo obbligatoria, attiva la funzione "required" nella sezione "Validation"

Dato presente una sola volta nel modulo

Per far sì che un dato possa essere inserito solo una volta durante la compilazione, nella sezione "Validation" del componente attiva la funzione "unique"

Lunghezza minima e massima (datagrid)

Per i componenti Datagrid puoi configurare la lunghezza minima e massima del testo inserito nel campo.

Nella sezione "Validation" del componente, compila le voci Maximum length e Minimum length con valori numerici.

Ricordati di inserire il messaggio di errore che compare all'utente alla voce "Custom error message".

Verificare le date inserite

Una volta inserita la data, puoi configurare il formato e verificare che il cittadino non possa inserire date nel passato.

Verificare l'età di una persona

Durante la configurazione di una data, nel caso in cui il servizio preveda l'inserimento di una data di nascita, puoi controllare che questa venga inserita correttamente.

Nella sezione "Validation" del componente, compila la voce "Custom validation" con il codice JavaScript di verifica, ad esempio prevedendo che venga inserita la data di nascita di un minorenne

date = moment(input, 'DD/MM/YYYY')
if (date.isAfter(moment())) {
  valid = "La data non può essere nel futuro"
} else {
  if (moment().diff(date, 'years') > 18) {
    valid = "L'età inserità non è quella di un minorenne"
  }
}

Regular expression pattern

Il pattern è una stringa che rappresenta una espressione regolare usata per verificare se il valore inserito in un campo rispetta certe regole di formato. È un modo per assicurarsi che, ad esempio, un campo email, telefono o codice postale abbia la struttura corretta.

Nella sezione "Validation" del componente (normalmente un Text field), compila la voce "Regular expression pattern" con la struttura prevista dal dato inserito

Ricordati di inserire il messaggio di errore che compare all'utente alla voce "Custom error message".

Lunghezza minima e massima del dato

Durante la configurazione di un componente Text field, puoi configurare:

  • la lunghezza del testo (1)

  • il numero di parole (2).

Ricordati di inserire il messaggio di errore che compare all'utente alla voce "Custom error message".

Verificare la residenza del richiedente

Per verificare la residenza del richiente devi:

  • inserire un campo Hidden;

  • compilare la voce "Label" nella sezione "Display" e la voce "Property name" nella sezione "API" con residence_check

  • compilare la voce "Calulated value" della sezione "Data" con il codice JavaScript di controllo

Qui trovi un codice di esempio, che fa una mappatura tra il Comune indicat dall'utente in fase di compilazione e il tenant.

window.FormioHelper.getTenantInfo().then(
(info) => {
tenant = info.name.toLowerCase()
locations = []
residence = data.beneficiary.data.address.data.address_locality
locations.push(residence)
toCheck = []
for (var location of locations) {
if (location !== "") { toCheck.push(location); }
}
toCheck = toCheck.map(function(place){return tenant.search(place.toLowerCase())})
show = true
for (var place of toCheck) {
if (place >= 0) {
show = false
break;
}
}
instance.setValue(show)
}
)

Una volta eseguita questa prima parte:

  • inserisci un campo Columns in cui inserire un campo HTML e un checkbox obbligatorio e disabilitato.

  • accedi al Json del componente Columns e inserisci il codice di controllo:

Qui trovi un codice di esempio:

{
"label": "Columns",
"columns": [
{
"components": [
{
"label": "HTML",
"tag": "div",
"className": "alert alert-danger",
"attrs": [
{
"attr": "",
"value": ""
}
],
"content": "
Attenzione!
\nNon puoi inviare questa pratica. La residenza del beneficiario non si trova nel Comune",
"refreshOnChange": false,
"key": "html17",
"type": "htmlelement",
"input": false,
"tableView": false
}
],
"width": 12,
"offset": 0,
"push": 0,
"pull": 0,
"size": "md",
"currentWidth": 12
},
{
"components": [
{
"label": "fail_applicant",
"customClass": "d-none",
"disabled": true,
"tableView": false,
"validate": {
"required": true
},
"key": "fail_applicant2",
"type": "checkbox",
"input": true,
"defaultValue": false
}
],
"width": 12,
"offset": 0,
"push": 0,
"pull": 0,
"size": "md",
"currentWidth": 12
}
],
"key": "columns9",
"conditional": {
"show": true,
"when": "residence_check",
"eq": "true"
},
"type": "columns",
"input": false,
"tableView": false
}

Verificare l'indirizzo del richiedente

Per verificare l'indirizzo inserito da un utente in fase di richiesta, inserisci nel modulo un nested form OC-Residenza.

Successivamente, inserisci un campo Columns in cui inserire un campo HTML e un checkbox obbligatorio e disabilitato.

Nella sezione "Contional" del campo Columns compila la voce "Advanced conditions" con il codice di controllo:

Qui trovi un codice di esempio per cui il richiedente viene bloccato quando la provincia inserita non è quella di Trento:

show = 
  data.sport_organization_address?.data.county?.length > 0 &&
  data.sport_organization_address.data.county !== "TN"

Verificare l'ISEE del richiedente

Per verificare il valore ISEE inserito da un utente in fase di richiesta, inserisci nel modulo un nested form OC-ISEE.

Successivamente, inserisci un campo Columns in cui inserire un campo HTML e un checkbox obbligatorio e disabilitato.

Una volta fatto, configura il codice json del componente Columns con il codice di controllo.

Qui trovi un codice di esempio per cui il richiedente viene bloccato quando l'importo ISEE inserito supera i 17.747,58

{
  "label": "Columns",
  "columns": [
    {
      "components": [
        {
          "label": "HTML",
          "tag": "div",
          "className": "alert alert-danger",
          "attrs": [
            {
              "attr": "",
              "value": ""
            }
          ],
          "content": "<h5>Attenzione!</h5>\nL'ISEE riportato è troppo alto. Non è possibile continuare la compilazione",
          "refreshOnChange": false,
          "key": "html9",
          "type": "htmlelement",
          "input": false,
          "tableView": false
        }
      ],
      "width": 12,
      "offset": 0,
      "push": 0,
      "pull": 0,
      "size": "md",
      "currentWidth": 12
    },
    {
      "components": [
        {
          "label": "admitted",
          "customClass": "d-none",
          "tableView": false,
          "clearOnHide": false,
          "validate": {
            "required": true
          },
          "key": "admitted",
          "type": "checkbox",
          "input": true,
          "defaultValue": false
        }
      ],
      "size": "md",
      "width": 12,
      "offset": 0,
      "push": 0,
      "pull": 0,
      "currentWidth": 12
    }
  ],
  "key": "columns2",
  "customConditional": "importo = parseFloat(data.economic_situation_indicator.data.value.replace(\",\",\".\"))\nshow = (importo && importo > 17747.58) ? true : false ",
  "type": "columns",
  "input": false,
  "tableView": false
}

Indicare i periodi di chiusura dell'Ente

Nella sezione "Ente", seleziona la voce "Periodi di chiusura" per indicare dei periodi o dei giorni di chiusura comuni a tutti i calendari.

Aggiungi periodo di chiusura

Clicca su "Aggiungi periodi di chiusura" per creare un nuovo periodo di chiusura.

Una volta fatto, indica la data di inizio e quella di fine del periodo di chiusura.

Eliminare un periodo di chiusura

Per cancellare uno dei periodi di chiusura in elenco, clicca su "Elimina chiusura"

approvazione parziale
funzioni di configurazione a disposizione degli operatori.

Catalogo Comuni

Labs mette a disposizione dei Comuni che ne fanno richiesta un catalogo di servizi progettati con cura secondo le Linee guida di design dei servizi digitali per la PA e il CAD (Codice dell'Amministrazione Digitale).

Il catalogo dei servizi è ordinato per aree e tocca tutti i principali ambiti, permettendo una navigazione chiara e immediata delle varie opzioni messe a disposizione da OpenCity Labs per rispondere alle esigenze specifiche dei Comuni.

Tutti i servizi del catalogo sono disponibili solo su richiesta.

Relazione con il pubblico e interazione con gli utenti

Questo paragrafo mette a disposizione una serie di strumenti che hanno un impatto diretto sulla relazione con i cittadini e che coinvolgono in modo trasversale tutti gli uffici dell’ente. Per questo motivo, il sistema favorisce una gestione integrata, riducendo la frammentazione e portando alla diffusione di standard basati su strumenti digitali che aggiungono velocità ed efficacia all’attività dell’ente.

Prenotare un appuntamento in Comune

Il sistema di prenotazione appuntamenti è uno strumento essenziale per la gestione ordinata dell’accesso agli sportelli comunali mediante appuntamento, con il relativo codice univoco.

Il back office supporta le funzioni di ricerca di un appuntamento, modifica o cancellazione, creazione di un nuovo appuntamento, mentre le API del servizio facilitano eventuali integrazioni con strumenti di gestione degli sportelli (cd. “eliminacode”).

Gli enti che utilizzano il sito web OpenCity possono inoltre attivare una versione avanzata, che sfrutta l’integrazione con il catalogo dei servizi per accompagnare l’utente verso la scelta del servizio di cui ha bisogno e della sede in cui ottenere l’appuntamento.

Richiedere l’uso di una sala comunale

Accanto al sistema di prenotazione degli appuntamenti si colloca il sistema di prenotazione di sale comunali, utile a governare l’accesso a risorse che l’ente mette a disposizione della comunità.

Il servizio accompagna l’utente nella scelta del giorno, dello slot che intende prenotare e consente anche la prenotazione di più slot definendo i relativi importi, se previsti. La fase di pagamento può essere contestuale alla prenotazione, oppure avvenire in fase di approvazione della richiesta (se la prenotazione è soggetta ad approvazione).

Un percorso specifico è dedicato alla prenotazione delle sale per matrimoni in modo da accompagnare i nubendi nella fase di scelta e valutazione della sala, di successiva prenotazione e pagamento dell’importo previsto.

Presentare una richiesta di accesso agli atti

L’accesso agli atti governa, nelle sue diverse forme di accesso civico, generalizzato e documentale, le richieste di accesso a documenti di ogni tipologia, comprese le materie di tipo edilizio, consentendo di assegnarle automaticamente ai diversi uffici e protocollando in modo automatico.

Oltre alle tradizionali funzioni di export in csv e via API, è disponibile una integrazione con Google Sheets che permette di ottenere una dashboard e un report integrato degli accessi agli atti, facilitando il monitoraggio.

Gli enti che utilizzano il sito web di OpenCity possono usare la per collegare la dashboard e automatizzare la pubblicazione delle informazioni sul web, prive dei dati personali.

Un help desk dedicato

L’evoluzione dei servizi di richiesta di assistenza e di segnalazione disservizi ha portato alla creazione di una piattaforma di help desk in modo da affrontare in modo più robusto la gestione dei flussi di segnalazione e richiesta di informazioni che negli enti è sempre frammentato, problematico e poco efficiente. L’uso del telefono e della email, privo di un gestionale, impedisce all’ente di standardizzare le procedure, disporre degli strumenti di monitoraggio e di controllo, gestire adeguatamente tutti i processi che prevedono il coinvolgimento di più persone o richiedono una gestione asincrona.

Il sistema prevede che segnalazioni e richieste di informazioni possano essere inviate dagli utenti via web, con una web app che ottimizza la fruizione attraverso lo smartphone, per esempio geolocalizzando l’utente per facilitare l’invio di una segnalazione in mobilità. Sulla base della tipologia di richiesta o di segnalazione (personalizzabile), il ticket viene classificato; se lo specifico argomento non è gestito dal Comune, l’utente viene avvisato e riceve le istruzioni su dove inviare la richiesta. Sulla base dell’argomento della richiesta, i ticket possono essere assegnati automaticamente a specifici uffici mentre un ufficio centrale (ad es. l’URP) continua a monitorare le segnalazioni o riprenderle in carico nei casi in cui sia di sua competenza fornire una risposta.

Viene inoltre utilizzato dal centralino dell’ente o da punti di contatto telefonici interni alle aree/uffici comunali per poter gestire le richieste ricevute al telefono, inserirle velocemente a sistema (anche in forma di bozza) e assegnarle per competenza in base alle necessità.

Tutte le richieste di informazioni e le segnalazioni sono gestite all’interno di OpenCity attraverso un back office dedicato, che permette all’operatore di ordinarle per priorità, assegnarle ad un altro operatore per competenza, aggiungere note e chiuderle (lo stato dei ticket infatti prevede l’utilizzo di fasi specifiche come “aperta” o “chiusa” invece di quelle abitualmente utilizzate per le pratiche), accedere rapidamente al catalogo dei servizi dove trova la knowledge base più indicata per fornire risposte ai cittadini.

Oltre alle tradizionali funzioni di export in csv e via api, è disponibile una integrazione con Google Sheets che permette di ottenere una dashboard e un report delle richieste di informazioni e delle segnalazioni, classificate per tipologia, consentendo il monitoraggio. Gli enti che utilizzano il sito web di OpenCity possono infine usare la funzione dataset del sito per collegare la dashboard e automatizzare la pubblicazione delle informazioni sul web, prive dei dati personali.

Titolo
Categoria
Data di ultima modifica

Giustizia e sicurezza pubblica

Salute, benessere e assistenza

Salute, benessere e assistenza

Cultura e tempo libero

Anagrafe e stato civile

Catasto e urbanistica

Raccolta e candidature di progetti e idee per la città

Cultura e tempo libero

Demografici

Anagrafe e stato civile

Titolo
Categoria
Data di ultima modifica

Anagrafe e stato civile

Anagrafe e stato civile

Anagrafe e stato civile

Anagrafe e stato civile

Anagrafe e stato civile

Anagrafe e stato civile

Anagrafe e stato civile

Elettorali

Titolo
Categoria
Data di ultima modifica

Anagrafe e stato civile

Anagrafe e stato civile

Anagrafe e stato civile

Anagrafe e stato civile

Anagrafe e stato civile

Disponibilità a svolgere la funzione di scrutatore

Anagrafe e stato civile

Disponibilità a svolgere la funzione di Presidente di seggio

Anagrafe e stato civile

Cimiteriali

Titoli
Categoria
Data di ultima modifica

Anagrafe e stato civile

Anagrafe e stato civile

Anagrafe e stato civile

Anagrafe e stato civile

Concessione cimiteriale

Anagrafe e stato civile

Mobilità, territorio e polizia locale

Mobilità

Titolo
Categoria
Data di ultima modifica

Mobilità e trasporti

Mobilità e trasporti

Mobilità e trasporti

Mobilità e trasporti

Mobilità e trasporti

Mobilità e trasporti

Mobilità e trasporti

Mobilità e trasporti

Mobilità e trasporti

Mobilità e trasporti

Mobilità e trasporti

Ambiente e territorio

Titolo
Categoria
Data di ultima modifica

Catasto e urbanistica

Ambiente

Ambiente

Catasto e urbanistica

Attivazione della TARI

Tributi, finanze e contravvenzioni

Esecuzione di lavori rumorosi

Ambiente

Ambiente

Ambiente

Politiche sociali

Titolo
Categoria
Data di ultima modifica

Salute, benessere e assistenza

Richiesta interventi educativi a domicilio

Salute, benessere e assistenza

Richiesta assistenza domiciliare

Salute, benessere e assistenza

Richiesta di accesso a un centro specializzato

Salute, benessere e assistenza

Richiesta trasporto sociale

Salute, benessere e assistenza

Registro assistenti alla persona (badanti)

Salute, benessere e assistenza

Richiesta di affidamento familiare di minori

Salute, benessere e assistenza

Presentazione progetti per i giovani e gestione del processo di valutazione

Cultura e tempo libero

Presentazione progetti per il sociale e gestione del processo di valutazione

Salute, benessere e assistenza

Salute, benessere e assistenza

Educazione e formazione

Salute, benessere e assistenza

Salute, benessere e assistenza

Tributi, finanze e contravvenzioni

Tributi, finanze e contravvenzioni

Tributi, finanze e contravvenzioni

Agevolazione canone idrico

Tributi, finanze e contravvenzioni

Cultura, sport e attività ludiche

Eventi e manifestazioni culturali e sportive

Titolo
Categoria
Data di ultima modifica

Cultura e tempo libero

Autorizzazione per manifestazione culturale o sportiva

Cultura e tempo libero

Iscrizione a un evento a posti limitati

Cultura e tempo libero

Concessione di un contributo per una manifestazione

Cultura e tempo libero

Concessione temporanea di occupazione suolo pubblico per manifestazioni ed eventi

Cultura e tempo libero

Rilascio tesserino attività di hobbista

Cultura e tempo libero

Sport e cultura

Titolo
Categoria
Data di ultima modifica

Domanda di rilascio di contributi per un'associazione culturale o sportiva

Cultura e tempo libero

Prenotazione/concessione in uso di spazi per attività culturali o sportive

Cultura e tempo libero

Cultura e tempo libero

Iscrizione centri diurni anziani

Cultura e tempo libero

Educazione e formazione

Iscrizione alla ludoteca

Cultura e tempo libero

Iscrizione alla biblioteca

Cultura e tempo libero

Presentazione progetti per i giovani e gestione del processo di valutazione

Cultura e tempo libero

Iscrizione ai centri estivi

Cultura e tempo libero

Servizi scolastici

Per i servizi scolastici, sono disponibili su richiesta anche i sistemi gestionali dedicati

Titolo
Categoria
Data di ultima modifica

con accettazione del posto assegnato

Educazione e formazione

Educazione e formazione

Educazione e formazione

con accettazione del posto assegnato

Educazione e formazione

Educazione e formazione

Educazione e formazione

Educazione e formazione

Altri

Nome del servizio
Categoria
Data di ultima modifica

Salute, benessere e assistenza

Tributi, finanze e contravvenzioni

Tributi, finanze e contravvenzioni

Tributi, finanze e contravvenzioni

Tributi, finanze e contravvenzioni

Tributi, finanze e contravvenzioni

Dichiarazione distribuzione volantini e persone circolanti con cartelli

Tributi, finanze e contravvenzioni

Salute, benessere e assistenza

Vita lavorativa

Segnalazione disservizi
Richiedi assistenza
Prenota appuntamento
Prenotazione di una sala pubblica
Richiesta di accesso agli atti
Accesso alle pratiche edilizie
Richiesta pubblicazione matrimonio
Prenotazione di una sala pubblica per matrimoni
Richiesta di divorzio o separazione
Costituzione di un'unione civile
02/07/2025
Costituzione di una convivenza di fatto
02/07/2025
Dichiarazione di nascita
Dichiarazione di morte
Albo degli scrutatori di seggio elettorale
Albo dei presidenti di seggio elettorale
Tessera elettorale
Liste elettorali aggiunte per le elezioni comunali
Liste elettorali aggiunte per le elezioni europee
Richiesta sepoltura di un defunto
Autorizzazione alla sepoltura di un defunto
04/06/2025
Autorizzazione alla cremazione di un defunto
04/06/2025
Attivazione lampade votive
02/07/2025
Richiesta del codice univoco CUDE
Richiedere permesso di accesso ad area ZTL
Permesso di accesso a strade forestali
Richiedere permesso di parcheggio per residenti
Rilascio copia atti incidenti stradali
02/07/2025
Permesso per passo carrabile
Permesso per passo carrabile con consegna della segnaletica
Richiesta di modifica temporanea della viabilità
Richiesta di modifica temporanea della viabilità con consegna della segnaletica
Deroga al divieto di circolazione
02/07/2025
Permesso di parcheggio invalidi
Richiesta di assegnazione di numerazione civica
Richiesta di allacciamento ad acquedotto e rete fognaria comunale
Autolettura contatore acquedotto
02/07/2025
Richiesta permesso di occupazione suolo pubblico
Autorizzazione per abbattimento alberi
Comunicazione di inizio attività di raccolta funghi
Consegna pasti a domicilio
Richiedere assegnazione alloggio
Contributo per nido familiare
Domanda di assegno maternità
Contributo per persone non autosufficienti
Domanda di agevolazione tributaria
Domanda di agevolazione tributaria (TARI)
04/06/2025
Domanda di agevolazione tributaria (IMU)
Richiedere la concessione di patrocinio del Comune
Domanda di iscrizione all'Albo delle associazioni
Iscrizione a corsi di formazione
Iscrizione all'asilo nido
Iscrizione al pre-scuola
02/07/2025
Iscrizione al doposcuola
02/07/2025
Domanda di iscrizione alla scuola dell'infanzia
13/03/2025
Domanda di agevolazioni scolastiche
Iscrizione al trasporto scolastico
13/03/2025
Iscrizione alla mensa scolastica
13/03/2025
Domanda per bonus economici
Pagare tributi IMU
04/06/2025
Pagare multe e contravvenzioni
Pagare il canone per le lampade votive
Pagare il canone idrico
Pagare il canone CUP
Richiesta di contributo per enti e associazioni
Domanda di partecipazione a un concorso pubblico
https://servizi.comune.bugliano.pi.it/lang/api/authservizi.comune.bugliano.pi.itservizi.comune.bugliano.pi.it
API per ottenere il token JWT passando le credenziali
Esempio con GovWay | Opencity Italia
API per ottenere il token JWT come utente loggato
https://servizi.comune.bugliano.pi.it/lang/api/session-authservizi.comune.bugliano.pi.it
Logo
funzione Dataset