Importazioni CSV
Riseact importa sostenitori e donazioni da file CSV. Gli importatori servono a caricare i dati iniziali di un'organizzazione, non a sincronizzarsi con un CRM esterno.
Principi
- I record esistenti non si aggiornano. Se un record corrisponde a uno già presente (secondo le chiavi di deduplica), resta com'è.
- Reimportare lo stesso file non crea duplicati. La deduplica usa i riferimenti
esterni (
external ref) e, per le righe senza chiave, un marcatore interno di riga. - Report in app. Ogni importazione compare in Impostazioni > Importazioni, con stato, conteggi e righe scartate. A fine lavorazione arriva un'email di riepilogo.
- Un'importazione alla volta per organizzazione.
Limiti del file
| Vincolo | Valore |
|---|---|
| Righe dati (esclusa l'intestazione) | max 10.000 |
| Dimensione file | max 10 MB |
| Codifica | UTF-8 (o UTF-8 con BOM) |
| Separatore | virgola (,) |
| Valuta | EUR |
I file più grandi vanno divisi in più importazioni.
Formato dell'intestazione
Le intestazioni sono minuscole, con le parole separate da spazi: first name,
supporter external ref, payment date. Maiuscole e spazi esterni vengono
ignorati, gli spazi interni multipli ridotti a uno. È la stessa convenzione delle
esportazioni, quindi un file esportato si corregge e si
ricarica senza rinominare niente.
Due eccezioni:
- le colonne dei campi personalizzati usano il prefisso
custom_(vedi Campi personalizzati); - le colonne identificativo (
id,supporter id,donation id) vengono ignorate: gli id li assegna Riseact. Qualsiasi altra colonna sconosciuta è un errore, così i refusi vengono intercettati.
Valori: regole di formato
Valgono per entrambi gli importatori.
Importi (
amount):x.xx, punto decimale, esattamente due decimali (regex^\d{1,10}\.\d{2}$). Rifiutati: virgola decimale (12,34), separatore delle migliaia (1.234,56), zero o un decimale (12,12.3), valori zero o negativi.Date e timestamp (
payment date): ISO 8601 stretto, per esempio:2026-12-312026-06-25 13:29:572026-06-25T13:29:57.566Z
31/12/2026non è accettato. Senza fuso orario si assume UTC, senza ora00:00.Data di nascita (
date of birth):YYYY-MM-DD.Codice paese (
country code): ISO 3166-1 alpha-2 (es.IT).Codice fiscale e partita IVA: solo validazione formale (alfanumerici, entro la lunghezza massima).
Booleani (consensi marketing e campi personalizzati BOOLEAN): solo
t/f,true/false,0/1, senza distinzione di maiuscole. Cella vuota = non impostato. Qualsiasi altro valore (yes,si,x) fa fallire la riga.Tag multivalore: separati da virgola nella stessa cella, che va quindi racchiusa tra virgolette:
...,altro,"x,y,z",altro,..."x,y,z"produce tre tag:x,y,z.
Deduplica
Sostenitore: vince la prima chiave che trova una corrispondenza, in quest'ordine:
supporter external ref -> email -> ssn -> vatSenza nessuna chiave valorizzata si crea sempre un nuovo sostenitore. Se una chiave
secondaria (email, ssn, vat) trova più sostenitori, vince quello con id più basso.
Donazione: chiave donation external ref. Le righe con lo stesso valore
confluiscono in una sola donazione con più pagamenti. Senza
donation external ref ogni riga diventa una donazione one-off.
Pagamento: chiave (donazione, data pagamento, importo), così reimportare il
file non duplica i pagamenti.
Campi personalizzati
Si importano con colonne custom_<key>, dove <key> è la chiave della definizione
del campo personalizzato (es. custom_numero_tessera).
- La definizione deve già esistere: una
<key>sconosciuta è un errore di intestazione. - Il valore va all'entità della definizione: un campo sostenitore sul sostenitore, un campo donazione sulla donazione.
- L'importatore sostenitori accetta solo campi di tipo sostenitore.
BOOLEANsegue la regola dei booleani sopra,SELECTdeve essere una delle opzioni della definizione,TEXTè libero.
Report ed esito
In Impostazioni > Importazioni trovi:
- lo stato (
In attesa,In corso,Completata,Fallita); - i record creati (sostenitori, donazioni, pagamenti) e il numero di righe scartate;
- le righe scartate con il motivo, esportabili in CSV per correggerle e ricaricarle.
Un errore sul file (CSV illeggibile, intestazioni non valide, file troppo
grande, controllo preliminare fallito) fa fallire l'importazione senza creare
record. Un errore su una riga scarta solo quella riga e l'importazione resta
Completata.
Le colonne sono elencate in:
Fonte: https://dev.riseact.org/docs/importers/overview. Copia automatica da dev.riseact.org: non modificare qui, le modifiche vanno fatte sulla documentazione Docusaurus.