Switching providers
Version of 7 November 2026. This page is part of the contract (section 12 of the Terms of Service).
You can leave ResiPlan at any time, on any plan. No switching charges. A notice period of your choice, from zero to 2 months. A transition of 30 days, which can be extended. At least 30 days to retrieve your data, then a certified deletion.
The procedure
- Notice. An administrator writes to us (template below): another provider, your own infrastructure, or erasure only. We confirm receipt within 3 working days. Do not cancel your subscription at this stage: you would keep access to your data, but lose the paid features at the end of the period. From this notice, the subscription no longer renews for a new period: a renewal date before the end of the contract extends it until that end, pro rata.
- Notice period. The one you choose, from zero to 2 months at most. If you state none, the transition starts at the confirmation of receipt.
- Transition. At most 30 calendar days. The contract continues, we maintain the service and we assist you and your new provider: documentation, answers to technical questions, analysis of problems related to our environment. You start as many exports as needed and import the data at the destination. If this period is technically unfeasible, we notify you within 14 working days, justifying it and indicating another period of at most 7 months. You may extend the transition once, for the duration that suits you.
- End of the contract. You tell us the switch has succeeded: the contract ends and we notify you. If it fails, we look for the cause together, on the same terms.
- Retrieval. At least 30 calendar days after the end of the transition. The Reversibility page and the exit interface remain accessible.
- Deletion. An administrator requests the closure on the Reversibility page, or we open it on written instruction. A last export starts at once. The deletion takes place 30 calendar days later, and a certificate is sent to you. Without an instruction, we open the closure no later than 90 days after the end of the contract or trial, and the administrators are warned by e-mail. Encrypted backups disappear no later than 35 days after the deletion. Only the following remain: the trace of the closure, which proves the deletion (name and identifier of the organisation, name and e-mail of the requester, any reason given, dates, counts, hashes and certificate), for 10 years; and invoices and accounting records, kept outside the Service, in our accounts and at our payment provider, for 10 years (Belgian tax law).
The switch requires import work in the destination tool: see the known limits below. The shared demonstration space is not covered by this procedure: it is a test version (Article 31(2)).
The data you retrieve
All the data of your organisation is exported, table by table, except for the list that follows. The categories:
- Your organisation and its members: organisation record, identity of members (name, e-mail, phone, language), roles, departments and settings.
- Continuity: processes, impact analyses, plans, dependencies, exercises, incidents and crises, corrective actions.
- Risks, compliance and audits: risk analyses, assessments by framework, evidence, audits, contracts and suppliers, assets and inventories.
- AI features: conversations with the assistant, proposals and analyses, analysed documents, consumption history.
- Logs: audit log and its archives with their chain, user activity log, API access, e-mail delivery events.
- Commercial history: subscription, recorded invoices, orders, credits and consumption.
- Your files, in their original format, linked to the record that references them.
- Your digital assets within the meaning of the Regulation: your configuration and what you created in the Service (roles and rights, settings, templates and methodologies you wrote). They are exported and erased with your data. The Service hosts no application of the customer.
- And all the other tables of your organisation, listed below.
Full list of the 480 exported tables
organizations, aiAgents, aiAnalystActions, aiAnalystConfig, aiAnalystInsights, aiAnalystReports, aiAnalyzedDocuments, aiCreditTransactions, aiFeatureConfig, aiOverageInvoices, aiPromptLogs, aiProposals, aiProviderCredentials, aiSuggestions, aiUsageRecords, alertAcknowledgments, alertCampaigns, alertChannels, alertDeliveries, alertEscalationPolicies, alertGroups, alertRecipients, alertTemplates, almAnalysis, anomalyDetections, apiKeys, applications, approvalRequests, approvalSteps, approvalWorkflows, assetFindings, assetRelationships, assets, auditCommitteeMeetings, auditCommitteeMembers, auditCommittees, auditLogs, auditPrograms, audits, authorityTransfers, automationApprovals, awarenessCampaigns, bcmAnalysis, bcmMetrics, bcmsAudits, bcmsPolicies, bcObjectives, bcp, bcStrategies, benchmarkingData, bia, biaAssessments, biaCampaignItems, biaCampaigns, biaDependencies, biaGapAnalysis, biaMethodologies, biaProcesses, biaRecommendations, biaTemplates, biaVersions, boardReports, bowTieAnalyses, bowTieTemplates, bpmnDiagrams, bpmnSimulations, bpmnVersions, brokers, brp, businessActivities, businessCapabilities, businessFunctions, businessProcesses, businessServices, campaignInterviewRequests, campaignStats, capa, capaSettings, carbonFootprints, cascadeActivations, cascadeSimulations, ccm, ccmCheckResults, ccmChecks, ccmIntegrations, ccp, changeImpactAnalysis, changeManagementRisks, changeRequests, changes, changeTasks, chatConversations, ciComplianceMappings, cifAnnualReports, cifRiskMap, ciRelationships, classificationCaveats, classificationSystems, climateAdaptationPlans, climateRisks, climateScenarios, clmClauses, clmContracts, cloudDiscoveryJobs, cloudDiscoveryRuns, cloudDiscoverySettings, cloudResources, cmdbReports, cmdbService, cmp, commandPositions, committees, communeReadinessDeclarations, communicationCascades, competencyMatrix, complianceAssessments, complianceAudits, complianceControls, complianceEvidence, complianceFrameworks, complianceReports, concentrationRisks, consentRecords, continuityOfGovernmentPlans, continuityOfOperationsPlans, contractComplianceAnalysis, contractDocuments, contractIntelligence, contractRenewals, contracts, controlFrameworkLinks, controlImplementations, controlTestExecutions, controlTests, conversationMembers, conversations, conversationStates, cookieBanners, cosoErmRisks, countryRiskProfiles, craAnnexIAssessments, craMarketSurveillance, craProducts, craSecurityUpdates, creditRisks, crises, crisisActions, crisisAIConversations, crisisCommunicationBarriers, crisisCommunications, crisisDecisionLog, crisisDecisions, crisisGameDecisions, crisisGameRuns, crisisGameScenarios, crisisIncidents, crisisLog, crisisManagementFramework, crisisPlaybooks, crisisReputationSignals, crisisResponderShifts, crisisSessions, crisisTimeline, crisisTranscriptSegments, crisisWiderImpacts, currentReadinessPosture, cvdReports, cyfunAssessments, dataClassification, dataDependencies, dataExports, dataProcessingActivities, dataverseConnections, dcmAuditLog, departments, dependencyConsistencyChecks, dependencyDiscoveries, diagrams, diagramVersions, directoryAttributePurges, discoveredAssets, discoveryScans, disruptionScenarios, documentControl, doraCifProviderMappings, doraConcentrationAssessments, doraContractAssessments, doraCriticalFunctions, doraIncidentClassifications, doraInfoSharingArrangements, doraOrchestratorRuns, doraRegisterOfInformation, doraRoiAssessmentDetails, doraRoiContractDetails, doraRoiEntities, doraRoiFunctionDetails, doraRoiImports, doraRoiProviderDetails, doraRoiSnapshotChunks, doraRoiSubmissions, dpiaAssessments, drp, dsrRequests, dynamicAttackGraphResults, dynamicAttackGraphs, ebiosBusinessValueTemplates, ebiosFearedEventTemplates, ebiosRisk, ebiosRiskHistory, ebiosRiskSourceTemplates, ebiosSecurityMeasureCatalog, emailEvents, emergencyOperationsCenters, entitlements, entityComments, eocActivations, eocCommunications, eocDepartmentLinks, eocIncidentLinks, eocIntegrations, eocPlanLinks, eocProcessLinks, eocResources, eocStaffAssignments, erp, esgAssessments, ethicsChannelSettings, executiveDashboards, exerciseEvaluations, exerciseFindings, exerciseInjects, exerciseRecoveryMeasurements, exercises, exerciseTemplates, externalDependencies, fairRisk, financialControlFrameworks, financialControls, financialControlTests, fmeaAnalyses, frameworkMappings, fteAssumptions, gapAnalysisAssessments, geopoliticalRisks, governanceCommittees, groupBcmSnapshots, groupExposureAggregates, groupFxRates, groupMethodologyDiffusions, groupServiceDependencies, groupSupplierSnapshots, guestCheckouts, hazardZones, hazopStudies, healthRiskProfiles, hermesProposals, hraAnalysis, importJobRecords, importJobs, importMappingProfiles, incidentCorrelations, incidentForms, incidents, incidentSections, incidentTasks, incidentTeamMembers, incidentTimeline, insiderThreats, insuranceOrgProfiles, insurancePolicies, integrations, integrationSyncLogs, integrationWebhooks, invoices, irp, ismsClauseConformity, ismsDismissedLinks, ismsObjectiveMeasurements, ismsObjectives, ismsObligations, ismsRiskTreatmentPlans, ismsScopes, ismsSoaEntries, iso27005Risk, iso27036Assessments, iso31000Risk, jesipDecisions, jesipMethane, journeyAcknowledgments, kinneyRisk, kri, leaderboards, legalRisks, lessonsLearned, licenses, lossEvents, managementReviews, marketplaceOrders, maturityAssessments, mcpAccessLogs, mcpPendingActions, meetingMinutes, mehariRisks, methodologyAnswers, metricSnapshots, migrationExtraFields, missionEssentialFunctions, missions, mlDiscoverySettings, mlDiscoverySources, mlModels, mlPredictions, modelValidations, monteCarloConfigs, monteCarloResults, n8nConfigs, n8nDeployedWorkflows, n8nEventQueue, n8nExecutions, navShellReturns, networkDevices, nis2IncidentNotifications, nist80030Risks, nistCsfAssessments, nonConformities, notifications, octaveRisks, organizationalUnits, organizationContexts, orgChartImportJobs, orgClosureRequests, pestelAnalysis, planActivations, planDependencies, planDocuments, planFolders, planTestRecords, planVersions, policies, policyTemplates, postIncidentReviews, postureSnapshots, preventionAdvisories, preventionInspections, preventionPlans, preventionWorkforceExposure, priceChangeAcks, processDependencies, processKPIs, processResourceRequirements, programLinks, programMilestones, programRaid, programs, programTaskComments, programTasks, publicSectorPlans, ragChunks, rbaAssessments, readinessFrameworks, reflexCards, regulatoryDeadlines, regulatoryWatch, renewalAlertSettings, reportExecutions, reportGenerations, reportRuns, reportSchedules, reportTemplates, resilienceScoreConfig, resilienceScoreSnapshots, resilienceTesting, reviewSchedules, riskAppetite, riskAppetiteSnapshots, riskBcmsLinks, riskCorrelations, riskCriteria, riskModels, riskQuantification, risks, riskScenarioLinks, riskScores, riskSubjects, safetyCellMeetings, safetyCellMembers, sbomComponents, sboms, scimDirectories, scimGroupMembers, scimGroups, scimTokens, scimUsers, securityPostureSnapshots, securityQuestionnaireAnswers, securityQuestionnaires, securityScannerConfigs, securityScanRuns, securitySettings, servers, serviceNowCIMappings, serviceNowIntegrations, serviceNowSyncLogs, sharePointConfigs, sharePointPlanOverrides, sharePointSyncLogs, simulationActions, simulationScenarios, simulationScores, simulationSessions, siteDependencies, sites, socialEngineeringRisks, softwareInventory, srp, ssoConfigurations, ssoDomains, stakeholderAssignments, stakeholders, standardsLibrary, storage, stressTests, subCertifications, subscriptions, successionPlans, suggestionDismissals, suppliers, supplyChainTiers, systemicRisks, tcfdAssessments, teamMembers, teams, tenantHosts, testExecutions, testFindings, testPlans, testReports, testSchedules, theaters, thirdPartyRisk, threatIntelligence, tlptEngagements, tlptFindings, trainingCampaigns, trainingCurriculum, trainingRecords, trainingSessions, travelCountryRatings, travelTrips, trendAnalyses, trustAccessRequests, trustCenterItems, trustCenters, typesafeOrgSettings, unitReadinessStatus, usageBalances, usageTransactions, userAchievements, userActions, userClearances, userInvitations, userNotificationPreferences, userProfiles, userProgress, userUiPreferences, varAnalysis, vendorMonitoringFeeds, vendorQuestionnaires, vulnerabilities, vulnerabilityAssessments, warRoomConfigs, webhooks, whsHazards, whsIncidents, wizardDrafts, chatMessages, messages, testParticipants, webhookLogs, users
What is not exported, and why
This list is exhaustive. These exclusions neither prevent nor delay the switch. If one of them blocks you in practice, write to us: we will see what can be handed over.
Ethics channel cases
They protect the identity of reporters and are reserved to the channel's handlers, whereas any administrator can request the full export. They are not lost: a handler exports them one by one from their page.
ethicsReports, ethicsCommunications, ethicsCaseViews
Logs of the service's defences
Anti-abuse counters, detection alerts and SAML session state, which lives only a few minutes. Disclosing them would expose the thresholds and rules that protect all customers (Article 30(6)). Your organisation's access events stay in the audit log and the activity log, which are exported.
rateLimitBuckets, rateLimitEvents, securityAlerts, typesafeGuardrailEvents, ssoSamlRequests, ssoSamlTickets
The publisher's internal operations
Technical errors with code traces, our teams' alert rules, internal reminders, the log of backups and of support access. This data describes the internal functioning of the service and is a trade secret (Article 25(2)(f)). None of it holds business data you entered, apart from possible excerpts in an error message. Support access to your organisation appears in your audit log, which is exported.
errorLogs, errorAlertRules, errorAlertDeliveries, emailReminderLog, platformBackups, backupSchedules, restoreOperations, impersonationSessions
The export's own machinery
The work in progress of an export: its content is the archive itself, and its manifest describes it.
exportJobs, exportJobParts, exportJobEntries, exportJobInlines
The publisher's commercial ledgers
Partner programme and commissions, internal account follow-up, counters of the demonstration space. This data does not result from your use of the service, and some of it names other organisations. A partner receives its statements under its contract. Your invoices, your subscription and your consumption are exported.
partners, partnerStatements, commissionEntries, conciergeAssignments, demoAiUsage
Sign-in data
The name, e-mail address, phone number and language of your members are exported. Their sign-in data is not. Passwords, sessions, verification codes and two-factor secrets are secrets, useless outside ResiPlan. Connection profiles (country, network, last IP address, number of connections) are used to detect abnormal access, and disclosing them would expose those controls (Article 30(6)). All of it is deleted with the accounts. Your members' connections stay in the activity log, which is exported.
authAccounts, authRefreshTokens, authSessions, authVerificationCodes, demoAccounts, mobileDeviceAttestations, sessionActivity, twoFactorAttempts, twoFactorSessionsVerified, userConnectionProfile, userTwoFactor
What belongs to the publisher, by category
- Content and settings provided by the publisher. Frameworks, templates, documentation, the assistant's knowledge base, price lists, release notes and platform settings. These are not your data: they are protected by intellectual property or trade secrets (Article 2(38)). What you wrote from a template, on the other hand, is exported.
- Running the platform. Health checks, global statistics, grouped technical errors and their analysis, deployed versions and the platform's work in progress. This data describes the internal functioning of the service, across all customers, and is a trade secret (Article 25(2)(f)).
- Security controls of the platform. Block and watch lists, short-lived sign-in counters and tokens, the cursor and hashes of the audit chain shared by all customers. Disclosing them would compromise the security of the service (Article 30(6)). They do not result from the use of one particular customer.
- The publisher's own registers. Prospecting and contact requests, visits to and performance of the public site, the public observatory of municipalities, disabled modules. This data does not result from your use of the service: Cryptaguard processes it on its own account (see the privacy policy).
Fields blanked in the exported tables
Replaced by [REDACTED]: passwords, tokens, keys and secrets, wherever they are, including the key of your AI providers and the secret of your connectors, which you already hold or can issue again at their end (Article 30(6)); the internal cost estimate on AI consumption; internal notes on orders; the technical billing error; the session identifier and browser fingerprint of the activity log.
Formats and structures
The public register describes all the exported tables, their fields and their types. It is kept up to date with each change to the service: register of structures and formats (JSON).
| Export archive, in one or more volumes | ZIP |
| Data: one table per file, data/<table>.jsonl | JSON Lines, UTF-8 (Convex JSON) |
| Manifest: tables, rows, hashes, exclusions (manifest.json) | JSON, SHA-256 |
| Data dictionary: fields, types, relations (schema/dictionary.json) | JSON |
| Uploaded files and their index (files/, files/index.json, files/index.csv) | Original format; JSON, CSV (RFC 4180) |
| Workbook of the continuity data (business/) | XLSX |
| Audit log archives (audit/audit-archive.jsonl) | JSON Lines, UTF-8 |
| Guide in French, English and Dutch (README.txt) | Text, UTF-8 |
No common specification or harmonised European standard has been identified for this type of service at the date of this page. The export therefore follows Article 30(5): a structured, commonly used and machine-readable format.
Known technical limits
- A parent or an operator cannot request the closure on the Reversibility page while organisations are attached to it: they must first be closed or transferred, which we do with you on request. An operator's consultant cannot request the closure of a client organisation: that is for an administrator of that organisation, or for the operator in writing. An organisation managed by an operator comes under that operator's contract.
- The export is not a snapshot: tables are read one after another. For a reference export, stop data entry before starting it. The manifest states when reading started and ended.
- An export stays downloadable for 7 days, then its files are deleted: you can start another. An organisation can start 5 exports per 24 hours.
- Files too large for the archive are not embedded in it: their download link is in files/index.json. A large organisation receives several volumes.
- How long the export takes depends on the volume of your data, and we publish no guaranteed duration. You can measure it now by starting an export: an e-mail tells you when it is ready.
- Identifiers are ResiPlan's, and relations between tables go through them (see the dictionary). As far as we know, no destination tool imports this format as it stands: the import, up to you or the destination provider, requires a transformation.
- The integrity chain of the audit log spans all customers: a row's previous hash may point at a row of another organisation, without revealing its content.
- What comes back is the data and its stored results, not the behaviour of the software: calculations, screens and automations have to be rebuilt in the destination tool.
Exit interface
A REST API lets a program start and fetch the export. It is free for all customers, whatever the plan, including after a cancellation or the end of a trial. An administrator creates the exit key on the Reversibility page of the application. It is valid for 90 days, gives access to nothing else and stops working if the person who created it is no longer an administrator of the organisation. You may hand it to the destination provider. The export and this interface can also be used during the contract to run ResiPlan in parallel with another service (Article 34), without a switching notice and with no data egress fees.
curl -X POST -H "Authorization: Bearer $EXIT_KEY" "https://app.resiplan.eu/api/v1/switching/exports?locale=en" curl -H "Authorization: Bearer $EXIT_KEY" "https://app.resiplan.eu/api/v1/switching/exports" curl -H "Authorization: Bearer $EXIT_KEY" "https://app.resiplan.eu/api/v1/switching/exports/<id>"
Charges
- Switching charges: none. The export, the exit interface, the data transfer and reasonable assistance are free, and we charge no data egress fees.
- Normal fees: they remain due until the end of the contract, including during the transition and its extension, at the rates of the pricing page.
- Early termination penalty: none on a monthly subscription. On an annual subscription, if the contract ends before the end of the paid year, the amount already paid for that year is kept, and nothing more is due. On a plan on quote, the amount in the order form. No penalty if you leave because of a breach on our part, a refused change or an objection to a sub-processor. A renewal date falling after your notice does not start a new year.
- Additional support: work going beyond these obligations, for example developing an import into the destination tool, is done only if you ask for it, on an accepted quote. The switch never depends on it.
Jurisdiction and third-country access
Where the infrastructure is, which jurisdiction it is subject to, and what we do against access by a third-country authority to your non-personal data (Articles 28 and 32 of the Regulation).
| Database and files | Convex, Inc. | US company (United States) | Ireland (AWS eu-west-1), European Union |
| Infrastructure of that database | Amazon Web Services EMEA SARL | Luxembourg company of a US group | Ireland, European Union |
| Application server | OVH SAS | French company | France, European Union |
| Transactional e-mails | Resend, Inc. | US company (United States) | United States |
| AI requests, by default | Anthropic, PBC; OpenAI, L.L.C.; Voyage AI Innovations, Inc. | US companies (United States) | United States |
Full list of sub-processors and their locations
Measures in place
- Technical. The database and files are hosted in the European Union, and the application in France; transactional e-mails and, by default, AI requests are processed in the United States. Traffic is encrypted. Daily backups are encrypted with a key held by Cryptaguard, not by the database host. Access by our staff is limited, and its entries into an organisation are logged.
- Organisational. A request from a third-country authority addressed to Cryptaguard is examined under Article 32 of the Regulation. It is refused if it does not rest on an international agreement or does not meet the conditions of that article. If we must answer, we disclose only the minimum, and we inform you before doing so, unless the request serves law enforcement and for as long as this is needed for its effectiveness.
- Contractual. Our contracts with sub-processors established outside the Union include the standard contractual clauses 2021/914, with notification and challenge commitments for personal data. These clauses do not, as such, cover non-personal data.
- In your hands. The "EU-hosted AI only (Mistral)" option avoids sending the context of AI requests to US providers. It works with no fallback: if Mistral is unavailable, so is the AI. You can retrieve or delete your data at any time.
What these measures do not guarantee. The database is run by a US company and hosted at a subsidiary of a US group, even though it sits in the European Union. That company may access it for support from the United States, and traffic between the browser and the database goes through the Cloudflare network. Transactional e-mails and, by default, AI requests are processed in the United States by other US companies. A US authority could go directly to all these companies. Cryptaguard can neither prevent this nor guarantee that it will be told. Encryption at rest of the database is managed by the host, which holds the keys. If this risk is unacceptable for some data, do not entrust that data to the Service.
Contact and notice template
Send your notice to contact@resiplan.eu, from the address of an administrator of the organisation. We confirm receipt within 3 working days. The template below is enough:
Subject: Switching notice Organisation: [name] Plan or contract: [plan, date] Request (choose one): - switch to another provider: [name, technical contact] - switch to our own infrastructure - erase our data without switching Notice period: [0 to 2 months, or desired start date] Person responsible: [name, e-mail, phone]