Privacy Policy

Back of Node · Last updated: 28 September 2026 · describes the app's code as of that date

This policy explains what personal data the Back of Node app processes, why, and the rights you have. It covers the EU General Data Protection Regulation (GDPR), the UK GDPR, and the California Consumer Privacy Act as amended by the CPRA. We keep it plain and honest: the app reads data to show you your own analytics, it never posts on your behalf, we do not sell your data, and the things that leave your workspace only leave because you switched them on. Where the app does less than a privacy policy usually promises, this page says so rather than rounding up.

1. Who we are (Controller)

The controller responsible for your personal data under the GDPR is:

Anne Sophie T. M. Guenster
Frankenweg 46, 61381 Friedrichsdorf, Germany
Contact: hello@backofnode.com

This policy covers the Back of Node application only, the dashboard you sign in to and the public pages it serves. It does not cover any other website we run; those have their own policies.

2. What the app does, and what you decide

Back of Node is a private dashboard for musicians and their teams. It helps you manage tours, shows, riders, setlists, contacts, documents, finances and merch, and it can bring together read-only analytics from the online platforms you choose to connect.

You decide what leaves your workspace. By default nothing does. The app is fully usable with no platform connected and no AI key: tours, shows, riders, setlists, contacts, files, tasks, finances, merch, the calendar and the press kit all work on their own, and none of them contacts anyone outside this server. There are three switches, each one off until you turn it on, and each one adds exactly one kind of outbound traffic.

  • Connect a platform (Instagram or a Facebook Page, YouTube, TikTok, Bandsintown). Until you do, no connection to that platform is ever opened. The app does not even construct the code that would make the call. After you do, we read the metrics described in Section 5, once a day and whenever you refresh. Read access only.
  • Turn AI on, and decide how (Settings, per artist workspace). There are three settings, and until somebody changes it a workspace sits on the third one with no key stored, which sends nothing anywhere:
    • Deactivate completely. Nothing leaves the system. The AI features disappear from the dashboard rather than sitting there greyed out, and a request that reaches the server by another route is refused by the server.
    • Platform AI. Requests run on a key we hold, so you do not need a provider account of your own. This applies only to workspaces that choose it and that we have enabled for it, and within them only to the features they switched on. Section 11 says who holds the contract with the AI provider in that case.
    • Bring your own key. Requests run on the key you entered in Settings, billed to your own account with the provider. You hold the contract with them.
    In the second and third setting you then decide feature by feature which of the six AI features may run at all (Section 4). Until AI is set up, the features say so instead of pretending: the assistant refuses with a “not configured” notice, the content coach, the caption generator and the survey analysis refuse in the same way, and the newsletter falls back to a local template that makes no network call at all. Once it is set up, an AI request goes out when you use one of the features you left switched on. Section 4 lists exactly what is sent.In the second and third setting we also count how much each request used, in tokens, per person and per month. That is not a switch you can turn off while an AI feature is on; Section 4 says exactly what is counted and who can read it.
  • Connect a Tally form. Until you do, no survey data is read. After you do, the responses your audience gave are read from Tally while you look at the survey page.

Whose key runs your requests. In “bring your own key” it is the key you entered and nothing else: there is no fallback to any other key, so a workspace can never end up sending its content on a key it did not choose. In “platform AI” it is the key we store for that purpose, and a workspace that selects that setting while we have no key stored gets told so rather than being served by something else. The code also has a server-wide key slot from an earlier design. It can now only feed platform AI, never a workspace that brought its own key, and when we last measured the deployed configuration (15 August 2026) it was empty.

The app is read-only toward connected platforms. It does not publish posts, send messages, or write comments anywhere for you, for anyone, ever.

Three things happen without any switch, and we would rather name them than let the sentence above swallow them:

  • Map tiles. Opening the tour route map makes your browser load map tiles directly from MapTiler, whose key is configured on this server. (Without that key the app would fall back to the OpenStreetMap Foundation's public tile server at tile.openstreetmap.org.) Your IP address reaches them by your opening that page. There is no connect step and no way to use that map without it.
  • Video thumbnails on public press-kit pages. A public EPK page loads YouTube thumbnails from i.ytimg.com in the visitor's browser, so a visitor's IP address reaches Google. Our server never fetches those images.
  • Account email. Verification and password-reset mail is sent when you register or reset. That is inherent to having an account; the account is the opt-in.

Two more calls leave the server, but only on something you press: locating your tour stops or the places in your library sends the place names to a geocoding service, and so does saving a press or media contact you have given a city. What is sent then is that city, not the name of the person. Refreshing travel times sends the coordinates to a routing service. Neither runs on a schedule and neither runs silently.

A calendar feed works the other way round: it exists only when you switch one on for yourself or a manager creates one for somebody, and nothing is ever sent from here to a calendar. The calendar fetches the address it was given, on its own schedule (Section 7).

3. What data we process

Data categorySourcePurposeLegal basis
Account data (name, email, securely hashed password, sessions, verification state, and an optional profile photo you upload: stored as a small square picture without the original file or its metadata, shown to your teammates, removable on your account page)YouCreate and secure your accountContract, Art. 6(1)(b)
Content you create (artists, tours, shows, show outreach entries, riders, setlists, day notes, tasks and their checklist items, including who ticked an item and when, finances and expenses, merch, contracts, deals, press-kit content)YouProvide the core serviceContract, Art. 6(1)(b)
Contacts, guest lists and venue or promoter details, including press and media contacts with the area they cover and the organisations they belong to (venues, promoters, labels, media, agencies): data about other people (see Section 6)YouRun your shows and keep your working contactsContract / Legitimate interests, Art. 6(1)(b)/(f)
Files you upload (documents, contracts, riders, expense receipts, images), stored as files on the server's disk. For readable documents (plain text and Markdown files, Word documents and PDFs) we also store a plain-text copy of what is inside them in the database, so that search and the assistant can find a file by its content and not only by its name. Deleting the file deletes that copy with it.YouStore, show and search your documentsContract, Art. 6(1)(b)
Instagram and Facebook Page data (profile, media metadata and captions, reach, engagement, follower counts, per-post insights)Instagram / Meta, with your authorisationShow you your own analyticsConsent, Art. 6(1)(a)
YouTube data (daily views and watch time for your channel, rolling 28-day aggregated audience snapshots; public subscriber and view counts)Google / YouTube, with your authorisationShow you your own analyticsConsent, Art. 6(1)(a)
TikTok account data (account id, display name, username, profile link, follower, likes and video counts)TikTok, with your authorisationShow you your own analyticsConsent, Art. 6(1)(a)
Bandsintown event data (public tour dates for the artist name you configure)Bandsintown, on your requestShow your public dates in the dashboardContract, Art. 6(1)(b)
Access tokens and platform credentials (encrypted at rest with AES-256-GCM)The platforms, on connectionKeep your connections workingConsent / Contract, Art. 6(1)(a)/(b)
Your AI provider key (encrypted at rest with AES-256-GCM; the last four characters are kept unencrypted so the settings screen can show you which key is stored)YouRun the AI features you enableConsent, Art. 6(1)(a)
AI usage counts: how many tokens each AI feature used, per person, per calendar month, with the model name and how many requests it took. Numbers only. Nothing you typed and nothing the AI answered is stored here.Counted by us when an AI feature runsShow a workspace what its AI use costs, and let us bill or limit AI that runs on our own keyContract / Legitimate interests, Art. 6(1)(b)/(f)
Assistant conversations: your messages, the assistant's answers, the tools it called and what those tools returnedYou and the appLet the conversation continue and let you re-read itContract, Art. 6(1)(b)
Content sent to and returned by an AI provider: newsletter drafts, captions, coaching turns, social analyses, survey readings (Section 4)You, when you use an AI featureProduce the draft or analysis you asked forConsent, Art. 6(1)(a)
Voice corpus samples: past newsletters and emails you import as style examples. These are real messages and can contain the name of the person they once went toYouGive the AI examples of how you actually writeConsent / Contract, Art. 6(1)(a)/(b)
Survey responses from your audience (email addresses, locations, free text, choices), read live from TallyYour audience, through your Tally formShow and analyse your survey resultsContract with you, Art. 6(1)(b); see Section 6
Activity records (who did what in your workspace, including administrator access)Automatically, as the app is usedAccountability and supportLegitimate interests, Art. 6(1)(f)
Presence: when you were last active in a workspace, rounded to the minute. Shown to teammates in the same workspace who also share theirs, as a circle in the header and a line in the team list. Managers can see whether you share, not when you were active. You can switch it off on your account page; nothing is stored while it is off.Automatically, as the app is usedShow the team who is aroundLegitimate interests, Art. 6(1)(f)
Product feedback signals: your votes on planned improvements, and when you last opened the what's-new panelYouDeciding what to build next, and showing you what is newLegitimate interests, Art. 6(1)(f)
Technical and usage data (IP address, timestamps, error logs)Automatically, when you use the appSecurity and reliable operationLegitimate interests, Art. 6(1)(f)

One of those kinds carries a rule about whole entries rather than about fields. A show outreach entry is visible to everyone in your workspace by default, and its author or a manager can mark any single entry as readable by managers only; a marked entry is removed from the answer before it leaves the server for anybody else, rather than hidden on the screen. Each entry also records who wrote it and when, as the account was named at that moment, and an entry that is later rewritten is shown as edited. Marking an entry does not reach back: whoever could already read it may have read it.

What those legal bases mean here:

  • Contract (Art. 6(1)(b)): to provide the account and the features you ask for.
  • Consent (Art. 6(1)(a)): when you connect a platform or switch AI on, you authorise the reading or the sending described here. You can withdraw at any time by disconnecting the platform, switching a single AI feature off, or turning AI off entirely (Section 15).
  • Legitimate interests (Art. 6(1)(f)): to keep the service secure and operational, where this does not override your rights.

The legal-basis assignments above are our good-faith description by someone who is not a lawyer. They still need confirmation in a legal review.

4. AI features (assistant, newsletter, coach, captions, scripts, survey and social analysis)

This is the part of the app that sends the most personal content to a third party, so it gets the most space.

Every AI feature can be switched off on its own. In Settings each of the six AI features has its own switch, so a workspace that wants captions written does not have to send its fans' survey answers as well. The seven blocks below are governed by those six switches: the caption generator and the filming scripts share one, because they are the same machinery, so switching captions off switches the scripts off too. A feature you switch off is refused by the server, not just hidden in the interface, and it says why it refused and where to switch it back on. It never quietly produces something that looks like an AI answer.

We count what the AI features use. Each time one of the features below calls an AI provider, we add that request's token counts to a monthly total for the person who made it, together with the feature and the model that ran. We store numbers only: not your question, not the answer, not the documents that went with it. Those totals can be read by the managers of your workspace, by you for your own use (Settings, AI usage), and by us as the platform operator. We keep them indefinitely, because the point of them is to compare one month with another. Counting starts when this build goes live; nothing before it was recorded and nothing has been reconstructed. Where AI runs on our own platform key, those totals are also a limit: there is a maximum number of tokens a workspace, and each person in it, may use per calendar month. When it is reached the feature says so and does nothing, until the counters start again at the beginning of the next month (UTC). A workspace running on its own API key is not capped by us.

Nothing happens here without a key. AI features run on an API key: the one a user enters in Settings, or, in the platform setting described in Section 2, the one we hold for that purpose. With no key available, the assistant answers HTTP 409 “not configured” and makes no outbound call, the coach, captions and survey analysis refuse rather than produce a fake answer, and the newsletter uses a local template that never touches the network. With a key available, a request leaves only when you use one of those features, and only if that feature is switched on.

Who receives it. The providers this app can call are Anthropic (api.anthropic.com), OpenAI (api.openai.com) and Mistral (api.eu.mistral.ai), depending on which key the request runs on: the one you saved, or the platform key if the workspace is set to platform AI. Anthropic and OpenAI process the request on servers in the United States. Mistral processes the request on servers in the European Union (its regional endpoint; account and billing metadata may be processed outside the region). Which provider a workspace on platform AI reaches is whichever key the operator has stored, and at present that is Mistral, on the EU endpoint named above; unless the operator changes the platform key, your content goes to Anthropic or OpenAI only if you saved your own key for one of them. (The same applies to the section fingerprints described under Assistant chat: they are made by the same key, and by no other.) When a key is saved we make one small test call to that provider to check the key works.

What each feature actually sends:

Assistant chat

Your message (up to 4,000 characters), up to the last 40 messages of that conversation, and up to six short sections (each up to 2,000 characters) taken from the uploaded documents that match your question, at most 16,000 characters of document text in total. Documents are split into sections once, on our server; only the sections that match are sent, never the whole file. The document types the assistant can read are plain text and Markdown files, Word documents and PDFs. For a Word document or a PDF, the file is opened on our server and only the text is sent, never the file itself. A PDF that contains no text at all (a contract someone photographed or scanned) has no text to extract, so nothing from inside it is ever sent. If such a file matches your question by its name, the assistant is told that the file exists and that nothing could be read out of it, so that it can say so instead of answering as though you had never uploaded it. What it is told in that case is the file name and the folder name, and nothing else. When you upload one of the readable kinds, the text inside it is extracted once, on our server, and kept as a plain-text copy in your workspace, split into sections, so that a question can find a document by what it says and not only by what it is called. Documents that were already in your library before this feature existed are read once in the same way, in the background, so that an older file can be found by its contents too. That copy stays in your workspace under the same access rules as the file itself and is deleted with it. Extracting it is not itself a transmission: the file is opened on our server. What is sent to a provider, and when, is the excerpts described above and the fingerprints described in the next paragraph, and nothing else. The assistant reads no other file type: an image, a spreadsheet or anything else in your library is never opened and never sent by it, whatever its name suggests. (The caption generator is the one place an image itself travels, and only when you attach it there; see below.) Document selection runs on your question alone, before the model has said anything: your question is matched against the names of your documents, the names of the folders they sit in, and the stored text copy described above, so a document can be picked because of what is written inside it and not only because of what it is called. If the assistant uses one of its tools, what that tool read from your workspace (shows, deals, contract data) goes back to the model as the tool's result. We tell the model in the prompt that document text is untrusted content and that instructions inside it are not to be followed. Every turn, every tool call and every tool result is stored in your workspace.

Fingerprints of the sections. To let a question find a section by its meaning and not only by the exact words in it, each section is once turned into a numerical fingerprint (an embedding). For that the section text is sent, once, to the same provider your workspace uses for the assistant: Mistral on its EU endpoint for platform AI, or OpenAI if you saved an OpenAI key. This happens when you upload or save a file, and once in the background for every document that was already in your library before this feature existed. With an Anthropic key no fingerprints are made and the assistant searches by words only. Your question is turned into a fingerprint the same way when you ask. The fingerprints are numbers, not text; they are stored in your workspace next to the plain-text copy, are never exported, and are deleted with the document. This happens only while the assistant is switched on for your workspace; it never happens for a workspace whose AI is off or whose assistant is off. What the provider keeps of such a request is governed by its own terms, listed in Section 9.

What the assistant can read from your workspace. The assistant does not have the run of your data. It reads a fixed table of areas, and within each area a fixed list of fields, listed below in the names the code itself uses. A field that is not on this list cannot reach the model through the assistant, whatever else is stored on the same record. Every area is also gated: you are offered an area only if your own account may open that part of the app, so the assistant cannot tell you anything the interface would keep from you.

Two limits hold for all of them. One reading of an area returns at most 20 rows. And a field nobody filled in comes back as null rather than being dropped, so the model can tell an empty field from a field that does not exist, and says so instead of inventing a value.

  • contracts (managers only): contractType, status, title, parties, paymentDirection, paymentBasis, paymentAmount, paymentPercentage, paymentPercentageOf, paymentCurrency, paymentSchedule, paymentDeadline, renewalDeadline, effectiveDate, endDate, responsiblePerson, cancellationTerms, note.
  • shows (the tour team): id, date, type, title, venue, city, country, address, status, capacity, loadIn, soundcheck, dinner, doors, stageTime, curfew, advanceState, parkingNote, notes. Fees and deal terms are deliberately not in this list; they have their own manager-only tool.
  • tours (the tour team): id, name, status, startDate, endDate. The budget on a tour is money and is not in this list.
  • tour-legs (the tour team): id, tourId, name, startDate, endDate.
  • tasks (the tour team): title, status, due, priority, area. Archived tasks are left out. One narrower thing travels further, and it is the only one: when somebody hands a task to a member of your team, the activity log records that it happened, the task's title, and the display name of the person it went to, which everyone in your workspace can read. What the task says, when it is due, which category it carries and what it is linked to are never in that record, and neither is anybody's email address.
  • contacts (the tour team): name, role, roles, org, phone, email, emails, phones, note. That is phone numbers and email addresses (a person may have several, and all of them are in this list), not one of each, and a person may carry several roles (promoter and owner, booker and marketing), all of which are in this list too. This is personal data about other people, so this area reaches exactly the accounts that see the contact book itself. One narrower thing travels further, and it is the only one: when somebody adds, changes, imports or deletes a contact, the activity log records that it happened and the person's name, which everyone in your workspace can read. Their phone numbers, email addresses, organisation and note are never in that record. The same is true of an organisation: adding, changing or deleting one records its name in that log, and nothing else about it.
  • organisations (the tour team): name, kind, website, emails, phones, note. This is the register your contacts are grouped by: a venue, a promoter, a label, a broadcaster or an agency. An organisation is not a person, so these are not somebody's personal details in the way the line above holds them. The email addresses and phone numbers here are an office's, they belong to real people at the other end, and they are read by exactly the accounts that see the contact book itself and by nobody else. Which place a venue sits at is deliberately not in this list, and neither is anything about the people who work there: they are in the contact book area above, each with their own addresses and their own roles.
  • travel (the tour team): date, mode, from, to, departTime, arriveTime, arriveDate, distanceKm, flightNumber, note.
  • stays (the tour team): date, name, city, checkIn, checkOut, nights, rooms, address, status, sleepArrangement, costAmount, costCurrency. What a stay costs is in the list because it is on that screen for the same people.
  • files (anyone who can open your files): name, folder, contentType, size, uploadedAt. This is the listing only. The contents of a file reach the model through the document excerpts described at the top of this box, never through this area.
  • merch-products (the merch team): id, name, productCategory, active. The catalogue entry only. What you wrote in the notes field of a product is not in this list.
  • merch-variants (the merch team): id, productId, variantType, size, color, prices, unitCost, unitCostCurrency, reorderAt, active. Prices and the production cost are in the list because they are on the same screen for the same people. The supplier code (sku) is not.
  • merch-transfers (the merch team): variantId, qty, from, to, date. Stock movements. The note on a movement is not in this list.
  • merch-settlements (the merch team): id, tourId, showId, showLabel, showDate, showCountry, currency, lines, payments, venueCut, attendance, status. A night's takings. lines is the counted stock of that night, one entry per variant, each with the four counts and the price that was frozen on the night. The note on a night is not in this list.
  • incomes (managers only): category, amount, currency, date, received, receivedDate, source, tourLabel, tourDeletedAt, showLabel, showDate. Money with no other source in the app: a grant, a sponsorship, a session, a licence, a royalty statement. Show fees and merch takings are not rows here. received is in the list because it is what the figure means: an amount that has not arrived is expected money, and the assistant is told in words never to report it as money in hand. The note on an income and the documents attached to it are not in this list.
  • expenses (managers only): category, amount, currency, date, payee, tourLabel, tourDeletedAt, showLabel, showDate. Who was paid is in the list because what a payment was for has no answer without it. The note on an expense and the receipts attached to it are not.
  • songs (the tour team): id, title, key, tempo, durationSec, album, year, inDefaultSet, defaultPosition. Your song library. inDefaultSet is in the list because without it the assistant would read the whole catalogue as one night's set. There is no free-text field on a song, so there is nothing here to withhold.
  • setlists (the tour team): id, name, shareViews, shareLastViewedAt. The setlist documents by name, plus how often the public link was opened and the day it was last opened. The link's own address (shareId) is not in this list: anybody holding that address can open the setlist, so it is the share itself rather than a fact about it.
  • setlist-entries (the tour team): setlistId, position, songId, special. The lines of a setlist in their running order. A line is either one of your library songs or an ad-hoc song that is not in the library, and special is that ad-hoc song: its title, what kind of song it is, and its key, tempo and length. The note you wrote on such a song is removed before the line leaves your workspace.
  • riders (the tour team): id, name, shareViews, shareLastViewedAt. The rider documents by name, with the same two share counts, and the link address withheld for the same reason as a setlist's.
  • rider-items (the tour team): riderId, category, item, qty, position. What one show's rider asks for. The note on a line is not in this list.
  • rider-template (the tour team): category, item, qty, position. Your Default Rider, the master list a new show's rider starts from. The note on a line is not in this list.
  • social-accounts (the social team): id, platform, handle, status. Which channels this workspace reads numbers from, and whether each connection is live. The stored key or token behind a connection is not in this list and is never readable by the assistant, and neither is the channel id, the last error a platform sent back, or a subscriber figure you typed in yourself.
  • social-metrics (the social team): socialAccountId, date, followers, views, likes, engagementRate, reach, newFollowers, videoCount, estimatedMinutesWatched, followersPrecision, followersDerived, source. One row per channel per day, the same numbers the social pages draw. The eleventh and twelfth fields say how sharp a follower count is and whether it was measured or reconstructed, and they are in the list for the same reason received is in the income list: without them a rounded or computed number reads as a measurement. The last one says where a row came from, including whether it is seeded sample data rather than a real figure.
  • instagram-posts (the social team): timestamp, mediaType, mediaProductType, permalink, caption, likes, comments, views, reach, saves, shares, totalInteractions. Your own posts with their own numbers. The caption is the first part of the text only. The picture and thumbnail addresses are not in this list: they are signed links that expire, so they are a credential rather than a fact about the post.
  • youtube-videos (the social team): videoId, publishedAt, title, durationSeconds, views, likes, comments, liveBroadcastContent. Your uploads with their lifetime figures. A video's description and its day-by-day view history are not in this list. Videos on other channels that your workspace chose to track are stored in this same area, and the assistant is not offered them: it reads your own uploads only.
  • youtube-audience (the social team): dimension, date, windowStart, windowEnd, rowCount, rows. Who watched your channel over a 28 day window, where from, on what, and after searching for what. There is no personal data in these reports: YouTube publishes them as shares and totals precisely because they identify nobody, and the age and gender shares cover signed-in viewers only. The two window fields are in the list because a share without its window is not a measurement. The rows are not handed over as stored: YouTube's report tables are kept exactly as Google sent them, so each row is rebuilt from a fixed list of columns for that report before it leaves, and a long report is put in order of size and cut to its largest fifteen entries. The age and gender report is the one that is never cut, because those shares only mean anything together. A column this app has not named cannot travel, whoever added it.
  • content-goals (the content team): id, name, tagline, sortOrder. The groups your content library is sorted into, with the one line under each name. Archived groups are left out. The longer description of a group is not in this list.
  • content-series (the content team): id, categoryId, name, subtitle, coreStack, purpose, primaryPlatforms, suggestedFrequency, energy, editEffort, exampleHooks, occasions, origin. Your repeatable formats: what each one is for, which channels it is planned for, how often it is meant to go out, what filming and cutting one episode takes, and the example hooks that come with it. The last field says whether a series came with the library or you created it yourself, so the assistant cannot present a library default as your own invention. Your own notes on a series are not in this list and the assistant has no way to read them. Neither is the long reference text on a format.
  • content-hook-groups (the content team): id, name, subtitle, sortOrder. The sections your hook library is divided into, each with the framing question printed under it. Archived groups are left out.
  • content-hooks (the content team): questionCategoryId, text, sortOrder. The hooks themselves, in their group and in their order. These are starting points to film against, not anything you have said. Archived hooks are left out.
  • content-shoots (the content team): id, date, label. The days you filmed on, which is what several calendar entries planned for one afternoon have in common. The free-text notes on a filming day are not in this list.
  • content-calendar (the content team): id, scheduledFor, platform, status, shootId, seriesId, caption, filmedAt, editedAt, postedAt, oneOff, showLabel, showDate. Your planned and published pieces. The caption is the text of the piece itself, which is what tells one entry from another. The fourth field is the stage a piece has reached, and it is in the list for the same reason received is in the income list: without it a plan reads as something you published. The last two are filled in only when a show a piece was planned for has been deleted, so they are a frozen name rather than a live link. Which show a piece belongs to is otherwise not readable through the assistant at all. The free-text notes on an entry are not in this list.
  • content-my-strategy (the content team): id, name, status, platforms, rhythm, endDate, createdVia, episodes, createdAt, updatedAt. Your own series on the My Strategy screen: the channels each one runs on, how often it is meant to go out, whether it is running, and the episodes you planned for it. An episode carries its number, its hook, its topic, the days you meant to film, edit and post it, and the stage it has reached. The third field is in the list for the same reason received is in the income list: a series you started and left is not a series you are running. The notes you wrote on a series, and on any single episode, are not in this list and the assistant has no way to read them. The episode note is a special case worth saying plainly: it sits inside the episode rather than beside it, so it is removed before the episode is handed over, not merely left off this list. Planning you made before the current version of that screen is not readable here at all.
  • content-drafts (the content team): channel, format, status, outputType, targetSeconds, seriesId, text, incomplete, createdAt. The captions, outlines and talking scripts this app generated for you and you kept, with the writing itself. The fourth field says which of those three a row is, and it is in the list because nothing else on the row does. The eighth says the provider cut the generation off, so a shortened text can never be handed over as a finished one. A draft you discarded is left out of this area entirely. What you typed as the description of the post, and the context you handed over for one generation, are not in this list. Neither is the picture you attached.
  • places (the tour team): placeType, name, city, country, address, capacity, parkingNote. The reusable places your workspace keeps: venues, hotels, airports, stations, rehearsal rooms. The first field is what tells a room from a bed and it is in the list because nothing else on the record does. Capacity is how many people the place holds, never how many came. The free-text notes on a place are not in this list, and neither are its map coordinates.
  • route-stops (the tour team): tourId, date, city, country, place, sortOrder. The dated points on a tour's route that are not shows: where the tour is on a day when there is no concert. The cached driving distances and times between two stops are not in this list, because the app itself re-checks them before drawing them and a copy handed to the assistant could be out of date. Your own note on a stop is not in this list either.
  • guest-list (the tour team): name, passType, status, passes, photoPasses, showId, tourId, excludedShowIds, createdAt. Who is on the door lists, which pass they hold, and whether the entry is still a request or has been approved. Your guests' email addresses and phone numbers, anything recorded about what they need in order to get in and get around, and the notes about them are not in this list. One rule here is about whole entries rather than fields: an entry marked visible to managers only is removed from the answer before it leaves the server for anybody who is not a manager, exactly as it is on the screen itself.
  • memberships (managers only): role, caps, createdAt. One row per person who has access to this workspace, saying what that person may do and when the access was given. There are no names and no email addresses in this area at all. The account behind a row is identified by an internal id, and that id is not in the list, so the assistant can say how many people have access and at what level and cannot say who they are.
  • newsletters (the content team): title, occasion, status, scheduledFor, sentAt, createdAt. This is the listing of your newsletters and never their text. What a newsletter says is not in this list and the assistant has no way to read it. Neither are the notes you typed into the form it was generated from. The third field is in the list for the same reason received is in the income list: a draft is not a letter that went out. This app has no sending in it at all, so sent is a mark you set by hand after sending the letter from somewhere else, and the assistant is told in words never to report a newsletter as delivered or to say who received it.
  • voice-samples (the content team): kind, platform, occasion, title. The past pieces of your own writing that you saved so the AI features can imitate your voice, as a shelf: how many there are, what kind each one is and where it was published. The text of a sample is not in this list and the assistant has no way to read it. That is the strictest omission on this page and it is deliberate: as the newsletter box below says, these are real past messages, so one can carry the name of the person it was once sent to. Where an imported sample came from, including the account handle it was pulled out of, is not in this list either.
  • press-kits (the content team): label, bioShort, facts, showUpcomingShows, showSocialStats, viewCount, lastViewedAt, updatedAt. Your press kit: its internal name, the short biography and highlight lines on it, whether its two live sections are switched on, and how often the public page has been opened. Nothing is recorded about who opened it, so the assistant can say how many times and when, never by whom. Whether the press kit is public, and its public web address, are not in this list. The address is withheld because anybody holding it can open the page, so it is the share itself rather than a fact about it. The long biography, the press quotes, the latest-release block, the contact list on the kit and the photos, files, videos and links attached to it are not in this list either, and the contact list matters most of those: it can hold an email address and a phone number typed straight onto the kit.
  • external-listings (the tour team): provider, syncState, lastSyncedAt, firstSeenAt, showId, snapshot. What this app knows about your shows on Bandsintown: whether each one is linked, has drifted apart from the local show, vanished from the service, or was deliberately set aside. snapshot is what the service said about the event at the last scan (its date, venue, city, country, start time and ticket link) and it is never copied onto your show; it is in the list together with the date of that scan, because an upstream reading without its date reads as the current state of a show. The service's own id for the event is not in this list.
  • tour-calendar (the tour team): tourId, date, title, startTime, endTime, kind. The dated entries that are not concerts: press, radio and TV, interviews, shoots, promo, rehearsals, meetings, travel days, days off and admin blocks. An entry does not have to belong to a tour. What you wrote in the notes field of an entry is not in this list.
  • setlist-rider-versions (the tour team): showId, kind, version, label, createdAt. This says which saved versions of a setlist or a rider exist, and never what is in one. The songs and the rider lines frozen inside a saved version are not in this list, and neither is the name of the person who saved it.
  • file-folders (anyone who can open your files): path, createdAt. The folders somebody created on purpose, so that an empty folder can be seen at all. Nothing about what is in them; the files area above is the listing.
  • activity-log (everyone who can use the assistant): at, kind, label, detail, actorName, visibility. Your workspace's own record of what people changed and when, the same record the Activity log page under Settings shows you. This is the one area in this table whose rows are filtered by who is asking. Entries the workspace treats as money, such as a changed fee, a changed deal or a changed price, are readable only by a manager, exactly as on that page, and the assistant is handed the filtered rows rather than filtering them itself. The email address and the account id of the person who made a change are not in this list; the display name they had at the time is.
  • workspace (everyone who can use the assistant): name, currency, distanceUnit. Three fields out of the roughly twenty-five on that record, which is what an allow-list is for.

Everything else the app stores is outside that table and the assistant has no way to read it, and there are three reasons a table is outside it. Some of it is personal rather than the workspace's: your own day notes belong to the person who wrote them, and there is no version of them the assistant reads. Some of it is an old store that a newer one replaced, kept only so nothing is lost, which the assistant would otherwise report as current. And some of it never gets an area at all, and the plainest cases are worth naming: stored keys and tokens, invitations, other people's conversations with the assistant, your audience's survey answers, and what individual people on the platform voted for or last read.

Newsletter draft

Artist name, the occasion, your own notes, the call to action, your links, and, if a tour is linked, that tour's name with its show dates, cities and venues. Plus your tone and sign-off and up to three style samples from your voice corpus. Those samples are real past messages, so they can carry the name of the person they were once sent to.

Content coach (Cue)

Artist name, the series format or the series you opened it on, and the conversation turns. On a series format in your Library, or on one of your own series, it also sends a capped list of your own songs and next shows. Your private artist notes are not read, only what you type into the visible field.

Cue also has a page of his own, under Content. Its guided door, the one that asks you three short questions, sends nothing to any provider: its questions and its suggestions are a filter over the formats in your own library, and it works with no AI key at all. What that conversation produces is stored in your workspace: the series it sets up, its episodes with the hooks and notes you wrote, the entries it puts on your calendar, and a setup you left unfinished, which is kept as a draft series so you can pick it up later. The conversation itself is not stored. Leaving the page ends it.

That conversation, and the one-off mask on My Strategy, can also plan single clips with no series behind them, on their own or as one batch across several songs. Those are stored as ordinary calendar entries with the hook and the note you wrote, the days you picked, and the song title where you named one; each is marked as a one-off, which is what lets it appear in the One-offs list on My Strategy. Nothing about them is sent anywhere.

The second door on that page, where you describe what is on your plate in your own words, is the one part of Cue that does call an AI provider, and it needs your AI key. It sends your artist name, what you typed, the formats in your own library with their purpose, when they are the right tool, what they cost in time and their starter hooks, and a capped list of your song titles and next shows, so Cue can put a title or a city into a hook that has a gap in it. It does not send your plan, your calendar, your drafts or your private notes, and it can only point you at formats you already have. Neither what you type there nor the answer is stored; leaving the page ends it.

From that answer Cue can also offer to set the idea up as a series of your own or as a single clip, and the name and the angles he suggests come out of the same answer, so nothing further is sent anywhere for it. Choosing either one opens a form with those words already in it, and nothing is stored until you save that form. If you do, the series or the clip is stored as described above, and the sentence you typed into the box is kept with it as a note on the series, where you can read it on its card in My Strategy.

A third door on that page checks the plan you already have: it lists the series with episodes that are past their day, and it can pause one, pick it back up, move a stalled run forward, or work its days out again for a different rhythm. Those four things call no AI provider and need no key. They send nothing anywhere and read only your own series and their days. They store nothing new: they change the episodes and the calendar entries you already have, and they tell you exactly what they moved. And an episode that had no day and gets one through the new rhythm is put on the calendar like any other episode with a day.

That third door also has a review, and it is the one part of it that does call an AI provider and needs your AI key. Pressing one of its three questions, or typing your own into its field, sends your artist name, the one series you have open with its name, platforms, rhythm, end date and status, and its episodes with their number, hook, topic, status and film, edit and post days, at most 24 of them. It does not send the notes you wrote on those episodes, any of your other series, your library, your calendar or your drafts. Nothing from it is stored, and it changes nothing in your plan: it answers in words, and the four buttons above it are what move anything.

Caption generator

Your description of the post, the series format's purpose, the hook you chose, anything you put in the context box, and style samples from your corpus filtered to that platform. Opening this form from an episode of My Strategy fills in the hook and the context box for you; both are on screen before anything is sent, and you can change or clear either. If you attach an image, the image itself is sent to the provider as raw bytes along with the text.

Filming scripts (outline and talking script)

The Create tab can also plan a shoot: first an outline in seconds, then, if you ask for it, the words you say to the camera. Both send your artist name, the name of the series the episode belongs to and the purpose of the series format it is based on, the hook and the song or subject of the episode, the platform and the target length in seconds, whatever you wrote in the visible field about how and where you are filming, and the tone from your voice profile.

The talking script sends two things more. It sends the outline exactly as it stands on your screen at that moment, including any edit you made to it, and up to three of your own past posts on the chosen platform as style examples, each cut to 600 characters (the title and the text). Those samples are real past posts, so they can carry real names, dates and places. The outline stage sends no past posts at all.

Opening this from an episode of My Strategy ("Plan filming") fills in the hook, the song or subject, the platform and the target length for you, and puts the note you wrote on that episode into the visible field about how and where you are filming. All of it is on screen before anything is sent, and you can change or clear any of it.

Neither stage sends your private notes, the notes on your episodes, your calendar, your other series or your other drafts. What comes back is stored as a draft in your workspace, where you can edit it or delete it.

Social AI read

Artist name and handle, per-channel metric summaries, spikes and milestones, the dates of shows and newsletter sends, and labels for your Instagram posts. No raw fan data. It runs when you press Refresh; there is a per-artist setting that can make it run automatically when the page opens, and its default is manual.

Survey AI

This runs in two separate calls, and the split is the privacy boundary.

The first call reads the form, not the answers: question ids, titles, types and the answer options you wrote yourself. By design it contains no fan email addresses, no free text, no locations, nothing per person and no counts.

The second call reads your audience's free-text answers and sends them to the provider. This is the one place where a fan's own words leave this server. Email questions can never be part of it. Any question the first call flagged as containing personal data is excluded too, unless a human explicitly turns that question back on. Choice, numeric, ranking and location answers are never sent.

What we store. Your assistant conversations, generated drafts, captions, coaching turns, analyses and survey readings stay in your workspace until you delete them.

Turning it off. Remove the key in Settings. The features switch off immediately and go back to refusing or, for the newsletter, to the local template. Anything already generated stays until you delete it.

What Anthropic, OpenAI or Mistral do with the content after it reaches them, how long they keep it and whether API traffic is used for training, is governed by their API terms and by the data processing agreement in place with them. Confirming that, and the transfer mechanism for the United States, is part of the legal review that is still outstanding.

5. Connected platforms

Each connection is a separate decision, asks for its own permissions, and can be disconnected on its own. All of them are read-only.

Instagram and Facebook (Meta)

There are three ways to connect, and each asks only for what it needs:

  • An Instagram professional account through Instagram Login: instagram_business_basic and instagram_business_manage_insights.
  • An Instagram account reached through its linked Facebook Page: instagram_basic, instagram_manage_insights, pages_show_list, pages_read_engagement and read_insights.
  • A Facebook Page on its own, with no Instagram involved: pages_show_list, pages_read_engagement and read_insights. The two Instagram permissions are deliberately dropped on this path.

What we read: your account and profile information, follower counts, reach and engagement, and your posts with their captions, links, timestamps, like and comment counts and per-post insights. Our use of this data is strictly read-only. We do not create posts, send or read direct messages, or write comments. Tokens are encrypted at rest using AES-256-GCM. Information obtained through the Instagram API is handled in line with Meta's Platform Terms and Developer Policies.

YouTube (Google) · YouTube API Services

Back of Node uses YouTube API Services. By using the YouTube features of this app you agree to the YouTube Terms of Service. Google's own handling of your data is described in the Google Privacy Policy. Our use of information received from YouTube API Services complies with the Google API Services User Data Policy, including its Limited Use requirements.

There are two separate paths, and only the first involves a Google login:

  • Your connected channel. We request exactly one OAuth scope, https://www.googleapis.com/auth/yt-analytics.readonly, and no others. It gives us your channel's own analytics: daily views and watch time, and rolling 28-day audience snapshots, which are aggregated shares (for example age bands or countries) and never data about an individual viewer. We deliberately do not request youtube.readonly: no access to your video library, no upload, no edit, no comment, no reading of anyone's subscriptions.
  • Public channel statistics. Public subscriber and view counts for a channel id, fetched with a YouTube Data API key. No Google login, no personal Google data.
  • Tracked videos on other channels. Public view, like and comment counts and the channel's public name for videos you add by link, fetched with a YouTube Data API key. No Google login. Removing a video deletes its stored history.

Revoking access. You can disconnect YouTube inside Back of Node at any time; when you do, we also call Google's token revocation endpoint. Independently of us, you can revoke Back of Node's access to your Google account at any time through the Google security settings page, https://myaccount.google.com/permissions.

Separately from any connection: public press-kit pages load YouTube video thumbnails from i.ytimg.com in the visitor's browser (Sections 2 and 7).

TikTok

We request three read scopes and no others: user.info.basic, user.info.profile and user.info.stats. We deliberately do not request video.list.

Once a day we read exactly seven fields about the connected account and nothing else: open_id, display_name, username, profile_deep_link, follower_count, likes_count and video_count. Nothing per video, nothing about your viewers, no content, no messages. TikTok is never written to.

Tokens are encrypted at rest with AES-256-GCM. TikTok issues an access token valid for about 24 hours and a refresh token valid for up to 365 days; while you stay connected the access token is refreshed automatically. When you disconnect inside Back of Node we call TikTok's token revocation endpoint and delete the stored token. You can also remove Back of Node on TikTok, under Settings and privacy → Security and permissions → Manage app permissions.

Bandsintown

The artist name you configure travels in the request URL together with our application id, and public event data comes back. There is no login and we receive no personal Bandsintown account data.

Tally (surveys)

If you connect a Tally form, we read the form, its questions and up to the latest 2,000 responses with your Tally API key, live, each time you open the survey page. Those responses come from your audience, not from you, and can contain their email addresses, locations and free text.

Two things we do because of that. Every one of those requests is marked no-store, so the framework never writes a response body to its own disk cache, and the survey page is rendered fresh on each request for the same reason. And the Tally key is kept server-side only and encrypted at rest, because a Tally API key carries the rights of your whole Tally account and has no narrower scope available.

What of this can reach an AI provider, and what can never, is in Section 4.

6. Data about other people

A lot of what goes into a tour dashboard is about people who will never read this policy: promoters and venue contacts, press and media contacts, guest lists, the people your riders are sent to, the fans who answered your survey, and the recipients named inside old emails you import as writing samples. It is also about the organisations you file them under. A venue, a promoter, a label, a broadcaster or an agency is not a person, but the office email address and phone number you keep for one reach the people who work there.

You are the one with the relationship to those people. You are responsible for having a basis to enter their data and for telling them where the law requires it. What we do with it is limited and worth stating plainly:

  • It is stored in your workspace and is not visible to other workspaces.
  • We do not sell it, do not use it for advertising, and do not build any profile of anyone across workspaces.
  • It reaches a third party only in the cases named on this page: to an AI provider in the survey and voice-corpus cases in Section 4, to our email provider when you send a rider or an invite (Section 8), to whoever opens a page you chose to publish (Section 7), to the calendar service of anyone you gave a calendar feed link (Section 7), and to whoever you hand a downloaded file to: the itinerary PDF and the tour spreadsheet (Section 7) are copies that leave the app with you.

If one of those people asks you to remove their data and you need our help, write to us (Section 16).

7. Public share links

Five kinds of page in Back of Node are reachable without signing in, by anyone who has the link. They are not listed or indexed by us, but a link is not a password.

  • Press kit (EPK) pages at a slug you choose. What appears there is what you put there, including any contact details you decided to publish, and the linked videos' thumbnails, which load from Google (Section 2).
  • Rider share links. A rider tied to a show stops serving seven days after the show date and shows a plain expiry notice instead. A standalone rider with no show date has nothing to age against and does not expire.
  • Setlist share links, for the people who need the running order.
  • Calendar feed links. A feed carries what its selection says: show dates and times, venue names and addresses, travel, hotel names and addresses, the show's setlist (song titles in playing order), notes, and, only if it was switched on, the name and phone number of a contact on site. It never carries fees, deposits, hotel costs, guest lists or contracts. The calendar app you subscribe with fetches the address regularly, and its provider (Apple, Google, Microsoft or whoever runs that calendar) stores the content and copies it to the devices signed into that account. We do not choose that provider and it does not act for us. Resetting the link makes the old address stop working, and the calendar it fed is empty at its next refresh rather than frozen.
  • Named calendar links. A manager can create a calendar link for somebody with no account here, name it after the person it is for, and choose what it carries from the same list as above. The manager can reset the link, which replaces the address, or revoke it, after which the calendar it fed is empty at its next refresh rather than frozen. A link made for one tour stops serving 30 days after that tour ends and empties itself the same way. Opening the link asks for the tour password and for a name, and that name is stored on the link with the date it was typed, so the manager can see who opened it. The password guards the PAGE. The calendar address behind it does not ask for one, because a calendar app cannot send a password when it fetches, so anyone who is given that address can read the feed until the link is reset or revoked. Behind the same password there is also a printable itinerary of the same dates, as a PDF, for somebody who cannot subscribe on a phone. A downloaded file is a copy we cannot reach: revoking or resetting the link stops further downloads and empties the calendar, but a PDF already saved on somebody's device stays where it is. Signed-in members with tour access can also download a tour as a spreadsheet, with its contacts, setlists and outreach notes; fees and hotel costs are in it only when a manager ticks that box for their own copy. The same sentence about a downloaded file applies.

8. Email the app sends

Back of Node sends a small, fixed set of messages:

  • Account mail: address verification and password reset.
  • Team invitations, which carry the invited person's address.
  • Rider sends: the rider PDF to the venue or promoter you name, with the address of whoever pressed Send set as the Reply-To, so a reply reaches a person rather than a shared mailbox.
  • Feedback to the operator, carrying your message and your address. A message you send from the feature board carries one extra word marking it as a feature idea, so it can be told apart inside the same inbox.
  • A test message an administrator can trigger to check the mail configuration.

There are structural limits on this, not just intentions. Every mail carries exactly one recipient (a comma-joined recipient list is refused at the seam), there is a hard ceiling of 20 non-account messages per hour, and a non-account message cannot leave at all unless the address is on an allowlist or an explicit opt-in flag is set on the server.

Back of Node sends no marketing mail and cannot mass-mail your audience. A newsletter draft is text; you take it wherever you send newsletters. The app has no fan-mailing function at all.

9. Service providers (sub-processors)

These are everyone this app can reach. The ones marked “only if you switch it on” are never contacted otherwise.

  • Hetzner Online GmbH: hosting and database, in data centres in the European Union.
  • Anthropic: AI features, United States. Only if you switch it on, and only when you use one. No embeddings: Anthropic has no such service, so the section fingerprints described in Section 4 are never made for an Anthropic key.
  • OpenAI: AI features, United States. Only if you switch it on, and only when you use one. This includes the section fingerprints described in Section 4, where the key in use is an OpenAI key.
  • Mistral AI SAS: AI features, France (European Union). Only if you switch it on, and only when you use one. This includes the section fingerprints described in Section 4, where the key in use is a Mistral key.
  • Meta Platforms: Instagram and Facebook Page data, only for the account you connect.
  • Google: YouTube API Services, analytics for the channel you connect, and public channel statistics via an API key. Separately, video thumbnails on public press-kit pages are loaded from Google by the visitor's browser.
  • TikTok: for the TikTok account you connect.
  • Bandsintown: public event data for the artist name you configure.
  • Tally: survey responses, if you connect a form. Those responses come from your audience, not from you.
  • MapTiler: the map on the tour route page, when a MapTiler key is configured on this server. Tiles are fetched by your browser directly, so your IP address reaches them whenever you open that page.
  • OpenStreetMap Foundation: two different things. Nominatim turns place names into coordinates when you press one of the two locate buttons (tour stops, place library), and when you save a press or media contact you have given a city; the place name and country are sent, your identity is not, and neither is the name of the contact. The answer also carries the administrative region of that place, for example the federal state, and we store that region on the place, and on the city a media contact is based in, so that press and media contacts can be matched to a show by region. Nothing extra is sent to receive it; it comes back with the same request. And when no MapTiler key is configured, the map tiles themselves come from the OSMF's public tile server, fetched by your browser, so your IP address reaches them. Both are public services we hold no contract with.
  • OSRM demo server (project-osrm.org): driving distances and times between two stops, when you press refresh. Coordinates are sent; your identity is not. This is the OSRM project's public demo service, not a provider we hold a contract with.
  • Resend: sends the email described in Section 8. Delivery runs over Amazon SES infrastructure. The app's mail code speaks plain SMTP and is not tied to one vendor; Resend is what this server is configured to use.

10. Administrator access to your workspace

Back of Node is run by one person, named in Section 1. She is a platform administrator, which means she can technically open any workspace on this server, including yours, without being a member of it. This is deliberate: it is how a support request gets answered, and how a workspace whose last manager has left can be reached at all.

Because that access is real, it is not silent:

  • While an administrator is inside your workspace, the app shows a band across the top of every page naming the workspace the admin is in.
  • Opening your workspace writes a record of who opened it and when.
  • The managers of your workspace are shown that record afterwards, whether or not anyone was signed in at the time. Confirming the notice hides it and keeps the record.

This access is not used to publish anything. The app is read-only toward connected platforms for everyone, administrators included. Members of other workspaces have no such access and never see your data.

11. Where your data is stored and international transfers

Your account data, your content and your uploaded files are stored on servers located in the European Union (Hetzner, Germany).

Several of the providers in Section 9 are outside the EU/EEA, and the ones that matter most are the AI providers, because they receive content rather than metadata: Anthropic and OpenAI (United States). Mistral is the exception among the AI providers: a French company processing in the EU, so it is not on this list at all. The remaining providers outside the EU/EEA are Meta, Google, Bandsintown and Resend with Amazon SES (United States), TikTok (its operating entities outside Germany), MapTiler (Switzerland) and the OpenStreetMap Foundation (United Kingdom). Tally states publicly that it is based in the EU.

The AI providers, where you send content yourself. When you actively use an AI feature with your own API key, the content you submit is sent to the provider you selected (Anthropic, OpenAI or Mistral) under your own agreement with that provider. Anthropic and OpenAI receive it in the United States. Anthropic relies on Standard Contractual Clauses incorporated in its Data Processing Addendum. OpenAI is certified under the EU-U.S. Data Privacy Framework, with Standard Contractual Clauses in its Data Processing Addendum as a fallback. Mistral is different in kind rather than in degree. It is an EU company (Mistral AI SAS, Paris), this app calls it on its European endpoint api.eu.mistral.ai, which processes the request inside the European Union, and its Data Processing Addendum is part of its terms by reference with nothing to sign. For the content you send, there is therefore no third-country transfer and no transfer mechanism to name. Account and billing metadata may still be processed outside the region.

The platform-provided AI key. A workspace can choose to run the AI features on a key we provide instead of one of its own (Section 2). It is a choice a workspace makes and one we have to enable for that workspace: no workspace is on the platform key unless we put it there. A workspace that keeps its own key is unaffected, and that is what every workspace does unless it changes the setting. Where a request runs on our key, we are the customer of the AI provider and it processes the content on our instructions, so we hold a data processing agreement with that provider in our own name. For our own OpenAI account, the contracting entity is OpenAI Ireland Limited, with the transfer mechanisms named above applying to any onward transfer. Where the platform key is a Mistral key, the contracting entity is Mistral AI SAS, Paris. The option only does anything once a key is actually stored for it and the workspace has been enabled for it: until then, a workspace that selects it is told which of the two is missing rather than being served by anything else.

The AI usage counts stay on this server. The token totals described in Section 4 are read off the provider's reply and stored in our own database in Germany. They are not sent to the AI provider, they are not part of any international transfer, and no sub-processor receives them.

For the other providers named above, data transferred internationally is intended to be protected by an appropriate safeguard such as the EU Standard Contractual Clauses.

The specific transfer mechanism in place for each of those remaining non-EU providers, and the contracting entity for TikTok, still need a legal review. We would rather say that than list mechanisms we have not verified.

12. How long we keep data

  • Account and content: kept for as long as your account exists. A manager of a workspace can delete that workspace at any time under Settings → Artist Profile → Delete this workspace; the records and uploaded files it holds are removed immediately and permanently, for every member of it, and there is no recycle bin to restore them from (Section 16). You can delete your account yourself under Settings → Your account; Section 16 describes both routes.
  • When you disconnect a platform: the stored access token is deleted, we call the platform's revocation endpoint where it has one, and the channel entries that pointed at that connection are removed. Your daily metric history stays. Those follower, view and engagement numbers are your own measured series over time, they are keyed to the account rather than to the connection, and reconnecting the same account picks the history back up. An earlier version of this page said the history was deleted; that was wrong, and this sentence replaces it. If you want the history deleted as well, ask us and we will delete it.
  • Assistant conversations, AI drafts, captions, analyses, survey readings and voice-corpus samples: kept until you delete them.
  • Calendar feed links: the link itself, what you chose to put in it, and the record of when it was last fetched and how often are kept until you reset the link or your membership of that workspace ends. A reset replaces all three at once: the old address is then unknown to us, and the count starts again.
  • Named calendar links: a link a manager created for somebody else keeps its name, its selection and the record of when it was last fetched and how often. Revoking or expiring stops it serving but does not remove it: it stays visible to the manager, marked as revoked or expired, until he deletes it. Deleting removes all of it at once. The name typed at the link's password page, the date it was typed and the number of wrong password attempts are kept on the same record and are removed when the manager resets the link or deletes it.
  • Survey responses: read live from Tally each time you open the page and not written to the framework's disk cache. What persists in Back of Node is the readings and analyses you generated from them. Deleting a response at the source is done in Tally.
  • Votes and the what's-new marker: a vote lives as long as the item it belongs to stays on the board; withdraw it in the feature board and the record of it is deleted, not set to zero. The marker recording when you last opened the what's-new panel lives as long as your account. Both are deleted when your account is (Section 16).
  • AI usage counts: kept indefinitely. The monthly token totals in Section 4 are small and their purpose is comparison over time, so we do not cut them back on a schedule. When an account is deleted, its totals stay but stop being about a person: the counts are re-keyed to the workspace as a whole, so the workspace's figures still add up for our own accounting and nothing in them points at you any more. Separately, each counted request also writes one line to the server log naming the feature, the person and the token counts, and a request the provider rejected writes one line naming the workspace, the feature, the provider, the model, the error status and the provider's own error message. A request refused because a monthly allowance was used up writes one line too, naming the workspace, the person, the feature and the two numbers, and no provider was contacted for it. None of these lines carries your prompt, the answer, or an API key, and all of them follow the 7-day rule below.
  • Server and access logs: 7 days. Our web server records the IP address of every request; we keep those for a week for troubleshooting and abuse detection, after which they are deleted automatically.
  • Database backups: 30 days. A backup is a full copy, so a record you deleted can still sit in one until its backup expires.

13. Your rights (GDPR / UK GDPR)

If you are in the EU or the UK, you have the right to:

  • access the personal data we hold about you;
  • have inaccurate data corrected;
  • have your data deleted (“right to be forgotten”);
  • restrict or object to certain processing;
  • receive your data in a portable format. A manager of a workspace can download the whole of it at any time as a single ZIP file, under Settings → Artist Profile → Export your workspace. It holds every record that workspace stores and every file uploaded to it, with the finance records also written as CSV; stored access keys and passwords are deliberately left out. Anyone with tour access can download one tour as a spreadsheet from that tour's Share tour info page. For anything those downloads do not cover, Section 16 says how to ask;
  • withdraw consent at any time; and
  • lodge a complaint with a supervisory authority (in Germany, your state data protection authority).

To exercise any of these rights, contact us at hello@backofnode.com.

14. Your rights (California, CCPA/CPRA)

If you are a California resident, you have the right to:

  • know what personal information we collect and how we use it;
  • access and delete your personal information;
  • correct inaccurate personal information; and
  • be free from discrimination for exercising these rights.

We do not sell or share your personal information as those terms are defined under the CCPA/CPRA, and we do not use it for cross-context behavioural advertising.

Whether the CCPA/CPRA applies to this service still needs to be confirmed in a legal review.

15. Disconnecting a platform or turning AI off

You can disconnect any connected platform at any time from within Back of Node, in your connection settings. Disconnecting deletes the stored access token, removes the channel entries for that connection, and stops any further data being read. Where the platform offers a revocation endpoint we call it as well. As Section 12 says, your existing metric history is kept unless you ask us to delete it.

You can also remove Back of Node on the platform's own side:

  • Instagram and Facebook: Settings and privacy → Apps and websites. Removing it there cuts our access immediately. The stored token stops working. To be honest about what that does not do: we do not run a deauthorisation callback, so nothing tells us automatically that you removed it. To have the stored data removed as well, disconnect inside Back of Node or write to us (Section 16).
  • Google and YouTube: revoke access at https://myaccount.google.com/permissions.
  • TikTok: Settings and privacy → Security and permissions → Manage app permissions.

To turn the AI features off, set AI to Deactivate completely in Settings. Nothing further is sent to any AI provider from that moment, whichever key the workspace was using, and the AI surfaces disappear from the dashboard. You can also switch off individual AI features and leave the rest running (Section 4), or remove your own stored key, which stops the features that were running on it.

16. Requesting deletion of your data

You can ask us to delete the personal data associated with your account, or with a connected Instagram, Facebook, YouTube or TikTok account, at any time.

  • Delete your account yourself: you can delete your own account inside Back of Node, under Settings → Your account → Delete your account. Confirming it takes a typed phrase and your password. Your sign-in, your display name, your profile picture, your two-step verification, your feature-board votes and your memberships of every workspace are removed immediately and permanently. Two things stay, and we would rather name them: a workspace you were in keeps its own records for the people still in it, and entries you left in an activity or feedback log stay with your name replaced by “Deleted user”, so the log still reads as a log. If you are the only manager of a workspace, or the last platform administrator, the app will refuse and tell you what to do first: delete or hand over that workspace, then your account.
  • Delete a workspace yourself: a manager of a workspace can delete it inside Back of Node, under Settings → Artist Profile → Delete this workspace. Confirming it takes the workspace name and your password. Everything the workspace holds goes with it: its records, its uploaded files, and its connections to Instagram, Facebook, YouTube and TikTok, where we also call the platform's revocation endpoint. This is immediate and cannot be undone, so take the export (Section 13) first if you want a copy. Your account itself, and any other workspace you belong to, is not affected.
  • Fastest way for one platform: disconnect the platform inside Back of Node (Section 15). That removes the token and the connection immediately.
  • By request: email hello@backofnode.com with the subject “Data deletion request” and the account concerned, either the platform account or the email address you registered with. Since the two in-app routes above exist, this is no longer the way to delete an account or a workspace; it remains the route for deleting metric history that survived a disconnect, for stored assistant conversations or AI drafts, and for anything the two buttons do not cover. We will confirm once the data has been deleted.

This section is the data deletion instructions page for our platform integrations.

17. Cookies and local storage

The app uses only technically necessary cookies and browser storage. There are no advertising or tracking cookies, no third-party analytics and no tag manager in this application, which is why it shows no cookie banner. Nothing below is used to profile you or to follow you to another site.

What is actually set, and why:

  • Sign-in session (cookie, better-auth.session_token, sent as __Secure--prefixed over HTTPS): keeps you signed in. Set by our authentication library, not readable by JavaScript, and cleared when you sign out.
  • Active workspace (cookie, active_artist): which of the workspaces you belong to is currently open, so the server can render the right one. Not readable by JavaScript.
  • Sidebar layout (cookie, nav_prefs, up to one year): whether the navigation is expanded or collapsed. It is a cookie rather than browser storage for one reason: the server needs it to render the sidebar in the right state on the first paint, and it cannot read browser storage.
  • Unfinished onboarding (cookie, onboarding_draft): holds what you have typed into the setup flow so a reload does not lose it, and is deleted when the flow finishes.
  • Trusted device (cookie, better-auth.trust_device, 30 days): set only if you tick “Trust this device” during two-step verification, so that device can skip the code for 30 days. Never set otherwise.
  • Connect-flow security tokens (cookies, meta_oauth_nonce, youtube_oauth_nonce, tiktok_oauth_nonce, 10 minutes): set only at the moment you start connecting a platform, so that the answer coming back can be proven to belong to the request you made. Deleted as soon as you return.
  • Calendar link password (cookie, cal_door, 30 days): set only after you enter the tour password on a calendar link page, so that page can show you the feed address and the itinerary again without asking a second time. It is bound to that one link, is not readable by JavaScript, and stops working if the link is reset.
  • Theme (local storage, theme): your light/dark choice.
  • Assistant panel size (local storage, mp-chat-size): the width and height you dragged the assistant panel to. Only the size is kept; whether the panel was open is deliberately not, so it never reopens itself.

Session storage is not used at all. The map on tour pages and the video thumbnails in a press kit are loaded from third parties (Section 2), which means those providers see the request, but they are not given a cookie by us.

18. Security incidents

If we become aware of a personal data breach affecting your data, we will notify you without undue delay at the email address on your account and tell you what happened, what is affected, and what we are doing about it. Where required by Art. 33 GDPR, we will also notify the competent supervisory authority.

The same commitment is §9 of our Terms of Use, deliberately in the same words: one promise, stated twice, so neither document can be read as the weaker one.

19. Children

Back of Node is not intended for children. You must be at least 16 years old to use it. We do not knowingly collect data from anyone under 16; if you believe a child has provided us data, please contact us and we will delete it.

20. Changes to this policy

We may update this policy as the service evolves or as legal requirements change. When we do, we will update the “Last updated” date at the top. Significant changes will be communicated through the app.

21. Contact

For any privacy question or to exercise your rights, contact:

Anne Sophie T. M. Guenster
hello@backofnode.com
Frankenweg 46, 61381 Friedrichsdorf, Germany