Déplacer un portefeuille par étapes compréhensibles
Importez, simulez, approuvez le plan exact, puis lancez des lots que vous pouvez suspendre, relancer ou annuler par retour arrière.
Le travail par lots est conçu pour ne rien changer avant qu’une personne ait vu et approuvé le plan exact. Il faut une connexion avec portfolios:read, portfolios:write, portfolios:execute et approvals:request, ainsi que les portées de casa des actions prévues.
Importer l’inventaire
POST /workspaces/{id}/portfolios accepte un CSV avec l’en-tête item_key,domain,source_url,world_handle,template_id,content_language ou les mêmes champs sous items[], jusqu’à 1000 lignes, avec preserve_existing_mx: true. Chaque ligne est contrôlée : domaines normalisés, doublons et URL dangereuses bloqués, textes des sources stockés comme données non fiables. Rien d’autre ne se passe encore.
Préparer et lire un plan en simulation
POST /workspaces/{id}/bulk-plans reçoit les actions voulues (create_draft, apply_import, set_dna, publish et les étapes de domaine), les plafonds budgétaires et les rollout_batches, par exemple [5, 95] : cinq éléments pilotes, puis le reste. La réponse est un manifeste immuable et son plan_hash. Lisez-le avec GET /bulk-plans/{plan_id} : chaque étape de chaque élément, ses changements prévus et son retour arrière possible. Les étapes DNS ne touchent qu’aux enregistrements web et gardent ceux de messagerie intacts. Les plans expirent après 24 heures.
Demander l’approbation du propriétaire
POST /workspaces/{id}/approvals lie le plan_hash exact, les plafonds et une expiration, puis renvoie une approval_url. Seul un propriétaire décide dans le navigateur, après une nouvelle connexion, en confirmant l’empreinte présentée. Un plan modifié ne réutilise jamais une approbation, et un jeton ne peut jamais approuver.
Exécuter, observer et piloter
POST /bulk-plans/{plan_id}/executeavecplan_hashetapproval_iddémarre l’unique exécution autorisée. Le lot pilote passe en premier ;continuelance le reste.- Suivez
GET /bulk-runs/{run_id}ou les webhooksjob.updatedetjob.item.updated. pause,resume,canceletretrypilotent l’exécution, sans répéter les étapes finies.rollbackannule les écritures du lot tant qu’elles n’ont pas changé.
Les enregistrements de domaines, messages envoyés et délais DNS déjà écoulés sont irréversibles et ne sont jamais annoncés comme annulés. Révoquer le jeton arrête le nouveau travail à l’étape suivante.
Ce qui fonctionne aujourd’hui
Import, validation, plans en simulation et approbations fonctionnent partout. L’exécution complète utilise des fournisseurs simulés de domaines, DNS et certificats en développement et en test. Elle reste désactivée en production tant que les vraies connexions ne sont pas prêtes. GET /capabilities l’indique sous bulk.execute.