Gestione social media white label per agenzie e SaaS
Manda a ogni cliente il link a una pagina di collegamento con il tuo logo, i tuoi testi e il tuo tema. Il cliente collega una volta sola TikTok, Instagram, YouTube o LinkedIn. Da lì in poi pubblichi e programmi per lui tramite API, n8n o Make.
Inizi gratis, senza carta di credito. Il white label è incluso dal piano Professional.
import { UploadPost } from 'upload-post';
const api = new UploadPost('YOUR_API_KEY');
// Un profilo per cliente
const client = 'client-harbor';
await api.createUser(client);
// Link di collegamento con il tuo brand, valido 48 ore
const { access_url } = await api.generateJwt(client, {
logoImage: 'https://latuaagenzia.it/logo.png',
connectTitle: 'Collega i tuoi account',
redirectUrl: 'https://latuaagenzia.it/fatto',
platforms: ['instagram', 'tiktok', 'linkedin']
});
// Manda access_url al tuo cliente Screenshot reali
Cosa vedono i tuoi clienti
Questa è la vera pagina di collegamento che apre il tuo cliente, mostrata con un brand di esempio. Northwind Studio è un'agenzia inventata e "Harbor Demo Cafe" un cliente inventato; la pagina, il layout e le opzioni sono quelli reali.
platforms.
connect_theme: "dark". Un tema forzato nasconde il selettore chiaro/scuro, così ogni cliente vede la tua scelta.
ui_labels: il sovratitolo, i titoli di sezione, il testo sulla privacy e tutti i pulsanti Connect dicono ciò che vuole l'agenzia.
platforms il cliente vede tutti i social, con i meno comuni dietro "Show 9 more networks". Il giorno dello screenshot Reddit risultava non disponibile.
Cosa può fare il cliente su quella pagina
- Collegare TikTok, Instagram, YouTube, LinkedIn e gli altri social con OAuth dalla schermata di accesso del social stesso, così la sua password non arriva mai né a te né a Upload-Post. Bluesky, Telegram, Discord e pochi altri usano invece una password per app, un token del bot o un webhook.
- Scegliere su quale Pagina Facebook, pagina aziendale LinkedIn o sede Google Business pubblicherai.
- Ricollegare un account con l'accesso scaduto o scollegarne uno quando vuole.
- Consultare il calendario dei post programmati, se lo lasci attivo. Con l'opzione in sola lettura può fare solo questo.
- Tornare sul tuo sito con il pulsante a cui hai dato il tuo testo.
Il link è legato a un solo profilo. Un cliente può vedere e modificare soltanto i propri account, mai quelli degli altri tuoi clienti né la tua API key.
Come funziona per un'agenzia
Cinque passaggi da un nuovo cliente al suo primo post programmato. Ogni passaggio si fa dalla dashboard o dall'API.
- 1
Crea un profilo per ogni cliente
Nella dashboard vai su Manage Users e aggiungi un profilo, oppure chiama
POST /api/uploadposts/userscon uno username comeclient-harbor. Un profilo contiene un account per ogni social. - 2
Genera il link di collegamento con il tuo brand
Clicca Share accanto al profilo e inserisci logo, titolo, descrizione, lingua, URL di ritorno, testo del pulsante e social. Oppure invia gli stessi campi a
POST /api/uploadposts/users/generate-jwt. Ricevi unaccess_urlvalido per 48 ore. - 3
Mandalo al tuo cliente
Via email, in chat o dentro il tuo flusso di onboarding. Il cliente non ha bisogno di un account Upload-Post e non vede mai la tua dashboard.
- 4
Il cliente collega i suoi account
Accede a TikTok, Instagram, YouTube o LinkedIn e autorizza l'accesso. I token vengono salvati cifrati e rinnovati per te. Se hai configurato un webhook, ricevi un evento
social_account_connectednel momento in cui succede. - 5
Pubblica e programma per lui
Pubblica con
user=client-harbore aggiungischeduled_dateper programmarlo. Puoi farlo dalla dashboard, dal tuo codice, dai template n8n, da uno scenario Make o da un assistente IA tramite il server MCP. I numeri di ogni cliente li prendi dall'endpoint di analytics.
Tutte le opzioni di branding
Sono tutti campi della chiamata generate-jwt e restano salvati sul profilo del cliente. L'ultima colonna indica se puoi impostarli anche dalla dashboard.
| Opzione | Parametro | Cosa fa | Esempio | Dashboard |
|---|---|---|---|---|
| Logo | logo_image | Mostra il tuo logo in cima alla pagina. Va bene qualsiasi URL pubblico http(s) di un'immagine. | "https://latuaagenzia.it/logo.png" | Sì |
| Titolo della pagina | connect_title | Sostituisce il titolo principale, che di default è "Connect your social accounts". | "Collega i tuoi account a Northwind Studio" | Sì |
| Descrizione | connect_description | Sostituisce la riga di testo sotto il titolo. | "Collega i canali che gestiremo per te." | Sì |
| Social mostrati | platforms | Compaiono solo i social che indichi. Se lo ometti, il cliente li vede tutti. | ["instagram", "tiktok", "linkedin"] | Sì |
| URL di ritorno | redirect_url | Dove porta il pulsante per tornare indietro quando il cliente ha finito. | "https://latuaagenzia.it/onboarding/fatto" | Sì |
| Testo del pulsante di ritorno | redirect_button_text | L'etichetta di quel pulsante. | "Torna a Northwind Studio" | Sì |
| Lingua | language | Forza inglese, spagnolo, tedesco, francese, portoghese, polacco o turco. Senza questo campo la pagina segue la lingua del browser e, se non è tra queste, usa l'inglese. | "es" | Sì |
| Qualsiasi testo della pagina | ui_labels | Riscrive singoli testi della pagina tramite la loro chiave: pulsanti, titoli di sezione, il testo sulla privacy. Fino a 100 chiavi, 300 caratteri ciascuna. | {"connect.card.connect": "Collega account"} | Solo API |
| Tema | connect_theme | Forza il tema chiaro o scuro e nasconde il selettore del tema. Con "auto" la scelta torna al visitatore. | "dark" | Solo API |
| Scheda calendario | show_calendar | Mostra o nasconde una scheda con il calendario dei post programmati per quel profilo. Attiva di default. | false | Sì |
| Calendario in sola lettura | readonly_calendar | Il cliente vede solo il calendario. Non può modificare o eliminare post, né collegare o scollegare account. | true | Sì |
Tutte le opzioni in una sola richiesta
curl -X POST https://api.upload-post.com/api/uploadposts/users/generate-jwt \
-H "Authorization: ApiKey YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"username": "client-harbor",
"logo_image": "https://latuaagenzia.it/logo.png",
"connect_title": "Collega i tuoi account a Northwind Studio",
"connect_description": "Collega i canali che gestiremo per te.",
"platforms": ["instagram", "tiktok", "linkedin"],
"redirect_url": "https://latuaagenzia.it/onboarding/fatto",
"redirect_button_text": "Torna a Northwind Studio",
"language": "en",
"connect_theme": "light",
"ui_labels": { "connect.card.connect": "Collega account" },
"show_calendar": false
}' Da sapere
- Invia tutto il branding ogni volta che generi un link. Logo, titolo, descrizione, testo del pulsante, URL di ritorno, social e lingua vengono cancellati dal profilo se non li mandi.
-
ui_labels,connect_themee i due interruttori del calendario cambiano solo quando li invii. Mandanullo{}per azzerare i testi. - I testi sostituiscono quelli della lingua in cui la pagina è mostrata. Se i tuoi testi sono in italiano e il browser di un cliente è in francese, il resto della pagina resta in francese, quindi imposta anche
language. - Le chiavi dei testi e il riferimento completo dei parametri sono nella documentazione della User Profiles API.
Cosa non è white label
Meglio leggerlo qui che scoprirlo da un cliente. Queste parti del flusso mostrano ancora Upload-Post o il social.
L'indirizzo
La pagina ospitata sta su app.upload-post.com/connect. Non esiste l'opzione di dominio personalizzato o CNAME. Se ti serve il tuo dominio, costruisci la tua pagina con la Connect API; il callback OAuth passa comunque per un attimo da app.upload-post.com.
Le schermate di consenso dei social
Quando il cliente accede, TikTok, Meta, Google, LinkedIn e gli altri mostrano la loro schermata con l'app registrata presso di loro, cioè l'app approvata di Upload-Post. È anche il motivo per cui tu salti le loro revisioni delle app.
Il riquadro sulla privacy
Sulla pagina c'è sempre una breve nota "How your data is used", con i link all'informativa sulla privacy di Upload-Post e a [email protected]. Di default indica come responsabile del trattamento TONVI TECH SL, la società dietro Upload-Post. Puoi riscrivere il testo con ui_labels, ma il riquadro e quei link restano.
Colori, titolo della scheda e la tua dashboard
Scegli tra chiaro e scuro, non un colore del brand: i pulsanti restano nell'indaco di Upload-Post. Il titolo e l'icona della scheda del browser sono quelli di Upload-Post. La dashboard in cui entra il tuo team è Upload-Post, non un'app con il tuo marchio.
Perché non costruire le integrazioni da soli?
Le integrazioni dirette significano revisioni delle app con Meta e TikTok, logica di rinnovo dei token e modifiche dell'API che rompono tutto, una volta per ogni social. Con una sola API hai tutti i social dietro un unico endpoint e sopra la pagina di collegamento.
Agenzie
Un profilo per cliente, il tuo brand sul link di collegamento, pubblicazione e programmazione da un unico posto
Piattaforme SaaS
Aggiungi la pubblicazione sui social al tuo prodotto senza costruire un'integrazione per ogni social
Strumenti per contenuti
Fai condividere agli utenti ciò che creano direttamente sui loro account social
Le chiamate API dietro le quinte
Per gli sviluppatori che lo integrano in un SaaS o in uno strumento per agenzie. Nessun flusso OAuth da costruire e nessuna credenziale delle piattaforme da gestire.
Crea un profilo per ogni cliente o utente
Un profilo è il contenitore degli account social di un cliente (o di un utente della tua app). Usa il tuo ID interno come username, così ricollegare i dati è immediato.
curl -X POST https://api.upload-post.com/api/uploadposts/users \
-H "Authorization: ApiKey YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"username": "your-internal-user-id-123"}' Genera l'URL di collegamento con il tuo brand
È qui che va il branding: logo, titolo, URL di ritorno, social e le altre opzioni della tabella qui sopra. La risposta contiene access_url, valido per 48 ore.
curl -X POST https://api.upload-post.com/api/uploadposts/users/generate-jwt \
-H "Authorization: ApiKey YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"username": "your-internal-user-id-123",
"redirect_url": "https://yourapp.com/social-connected",
"logo_image": "https://yourapp.com/logo.png",
"platforms": ["tiktok", "instagram", "youtube"]
}' Il cliente collega i suoi account
Manda il cliente o l'utente su access_url. Sui social con OAuth come TikTok, Instagram e YouTube si autentica direttamente con il social, quindi Upload-Post non vede mai la sua password, e i token ottenuti vengono salvati cifrati.
Cosa gestisce Upload-Post al posto tuo
Flussi OAuth 2.0
Rinnovo dei token
Archiviazione cifrata
Pubblica o programma per suo conto
Includi lo username del profilo come user in qualsiasi richiesta di upload. Aggiungi scheduled_date per pubblicare più tardi invece che subito.
curl -X POST https://api.upload-post.com/api/upload \
-H "Authorization: ApiKey YOUR_API_KEY" \
-F "user=your-internal-user-id-123" \
-F "video=@/path/to/video.mp4" \
-F "title=Nuovo menu d'autunno" \
-F "platform[]=tiktok" \
-F "platform[]=instagram" \
-F "scheduled_date=2026-10-02T09:00:00Z" Una API key, un profilo per cliente
Tutti i tuoi clienti stanno sotto un unico account e un'unica API key, ognuno nel suo profilo con i suoi account social.
Come funzionano i profili
Ogni profilo collega un account per social. Il tuo piano stabilisce quanti profili hai, e i profili non sono un tetto agli account social: con Professional puoi avere collegati contemporaneamente 25 account TikTok, 25 account Instagram e 25 account LinkedIn.
- Credenziali separate: i token social di ogni cliente appartengono solo al suo profilo
- Webhook per cliente: dai a ogni profilo il suo URL per gli eventi di collegamento e di upload
- Una sola fattura: un unico abbonamento copre tutti i clienti
Esempio di configurazione
| Piano | Profili inclusi | Fatturazione mensile | Fatturazione annuale |
|---|---|---|---|
| Professional | 25 | 50 $/mese | 33 $/mese (400 $/anno) |
| Advanced | 75 | 147 $/mese | 118 $/mese (1.411 $/anno) |
| Business | 225, poi 1 $/mese per ogni profilo in più | 438 $/mese | 350 $/mese (4.205 $/anno) |
Prezzi in dollari (USD) a settembre 2026. I prezzi in euro e i pacchetti di profili extra per Professional e Advanced sono nella sezione prezzi, che è sempre la fonte aggiornata.
Chi usa l'integrazione social white label?
Piattaforme SaaS
CMS, piattaforme di marketing automation e software gestionali.
Agenzie di marketing
Agenzie di marketing digitale e società di social media management.
Piattaforme di contenuti
Piattaforme di blogging, siti di hosting video e strumenti per creare contenuti.
Piattaforme di formazione
LMS e piattaforme di contenuti didattici.
Piattaforme e-commerce
Marketplace online e soluzioni di e-commerce.
Piattaforme video
Piattaforme di hosting video e servizi di streaming.
Specifiche tecniche e conformità
Piattaforme supportate
E altre 11, tra cui Google Business, Slack, Mastodon e WordPress. Vedi tutte le 22 piattaforme
Sicurezza
I token dei social sono cifrati a riposo.
Sui social con OAuth i clienti accedono dalla schermata del social stesso. La loro password non passa mai né da te né da Upload-Post.
Ogni link di collegamento apre un solo profilo e scade dopo 48 ore.
Metti il tuo brand sull'onboarding dei clienti
Crea un profilo, clicca Share, manda il link. La tua prima pagina di collegamento con il tuo brand è pronta in pochi minuti.
Inizi gratis, senza carta di credito. White label dal piano Professional.
Gestione social media white label: domande frequenti
Le domande che agenzie e team SaaS fanno prima di mandare il loro primo link di collegamento con il proprio brand
I miei clienti devono avere un account Upload-Post?
No. Il link di collegamento contiene un token valido solo per il profilo di quel cliente. Il cliente lo apre, accede a ogni social e ha finito. Il link vale 48 ore; dopo ne generi uno nuovo.
Posso mettere la pagina di collegamento sul mio dominio?
La pagina ospitata no: sta sempre su app.upload-post.com/connect e i domini personalizzati non sono disponibili. Se l'indirizzo è importante, con la Connect API puoi costruire la pagina sul tuo sito. Anche in quel caso il social rimanda il cliente per un attimo su app.upload-post.com, perché è il callback OAuth registrato presso ogni piattaforma.
Quali piani includono il white label?
Professional, Advanced e Business. Free e Basic non lo includono. Professional ha 25 profili, Advanced 75 e Business 225; su Business ogni profilo in più costa 1 $ al mese. Nessuna chiamata commerciale: scegli il piano nella pagina dei prezzi.
Quanti account di un cliente stanno in un profilo?
Un profilo contiene un account per ogni social, quindi un profilo può essere un cliente con Instagram, TikTok, LinkedIn e YouTube collegati. 25 profili vogliono dire fino a 25 account su ciascun social, non 25 account in totale. Un cliente con due account Instagram ha bisogno di due profili.
Devo mandare il branding ogni volta che creo un link?
Sì, per logo, titolo, descrizione, testo del pulsante, URL di ritorno, social e lingua. Ogni chiamata a generate-jwt salva esattamente quello che invii, quindi un campo che ometti viene cancellato da quel profilo. ui_labels, connect_theme, show_calendar e readonly_calendar funzionano diversamente: cambiano solo quando li invii.
I miei clienti possono vedere cosa è programmato?
Sì. La scheda calendario è attiva di default e mostra i post programmati per quel profilo. Se attivi readonly_calendar, il link diventa un calendario editoriale in sola consultazione: il cliente guarda ma non può modificare, eliminare o cambiare i collegamenti. Mandalo su /connect/calendar con lo stesso token per aprirlo direttamente.
In quali lingue è disponibile la pagina di collegamento?
Inglese, spagnolo, tedesco, francese, portoghese, polacco e turco. Puoi forzarne una per profilo con il parametro language oppure lasciare che la pagina segua il browser. L'italiano non è tra queste: con un browser in italiano la pagina si vede in inglese, ma con ui_labels puoi scrivere tu i testi, anche in italiano.
Come faccio a sapere quando un cliente ha collegato un account?
Con i webhook. Upload-Post invia gli eventi social_account_connected, social_account_disconnected, social_account_reauth_required e upload_completed. Ogni profilo può avere il suo URL di webhook, così ogni cliente può notificare un endpoint diverso del tuo sistema.
Posso scaricare le statistiche per cliente?
Sì. L'endpoint di analytics riceve lo username del profilo, quindi ottieni i numeri di un cliente alla volta e puoi costruirci sopra i tuoi report.
Avete degli SDK?
Ci sono SDK ufficiali per Python (pip install upload-post) e JavaScript/Node (npm install upload-post). Per il resto è una normale API REST con API key, quindi funziona con qualsiasi linguaggio o strumento no-code in grado di inviare richieste HTTP.
Quanto ci vuole per configurarlo?
Senza codice: crei un profilo in Manage Users, clicchi Share, inserisci il tuo branding e mandi il link. Con l'API sono due chiamate, una per creare il profilo e una per generare il link, più le chiamate di upload che ti servono comunque per pubblicare.
Che assistenza ricevo?
Documentazione con esempi di codice per ogni endpoint e assistenza via email a [email protected]. Advanced e Business includono l'assistenza prioritaria.
Più dettagli: User Profiles API, Connect API, Webhook e SDK.