Getting Started

DataPipe sends data from your experiment straight to storage you control: Google Drive, Dataverse, or Zenodo. This guide walks you through setting up one experiment end to end, from choosing a provider to your first test run.

1

Choose where your data goes

DataPipe writes each participant's data into your own account with one of the three storage providers below. The data is yours the whole way through. DataPipe only ever asks for permission to add files. You can use a different provider for each experiment, so this choice isn't permanent.

Google Drive: your own Google Drive. Data lands in a folder in My Drive/DataPipe, or in a parent folder you pick.

Limits: free Google accounts share 15 GB across Drive, Gmail, and Photos. Uploads stop once that is full.

Dataverse: institutional repositories run by universities and consortia (Harvard Dataverse, Borealis, DataverseNL, and others). Data lands in a draft dataset, in a collection you name.

Limits: your installation sets its own file size and storage limits. API tokens expire, often yearly, and DataPipe cannot renew them, so data stops arriving until you reconnect.

Zenodo: an open repository run by CERN. Data lands in a deposition that stays private until you publish it, and publishing issues a DOI.

Limits: 100 files and 50 GB per record. DataPipe merges completed sessions into archives so a long study stays under the file limit.

You'll need an account with whichever provider you choose: Google Drive, your Dataverse installation, or Zenodo.

2

Connect your storage provider

Go to your Account Settings and find the Storage Providers section. Click Connect next to the provider you chose. A green Connected label tells you it worked.

Google Drive and Zenodo open their own sign-in page so you can authorize DataPipe, then bring you straight back.

Dataverse opens a short form instead. It asks for the full address of your institution's installation (for example, https://dataverse.harvard.edu) and an API token, which you create under the API Token tab of your Dataverse account.

You can connect more than one provider, and disconnect any of them from the same screen. Disconnecting stops new data from reaching that provider. It never removes data already stored there.

3

Create a DataPipe experiment

Click New Experiment in the navigation bar. Pick your storage provider at the top of the form and give the experiment a Title. The rest of the form changes with the provider:

Google Drive: nothing else is required. To keep the data somewhere specific, click Choose Drive folder and pick a parent folder. Otherwise DataPipe creates the folder in My Drive/DataPipe.

Dataverse: the collection alias, which is the short name from your collection's URL, plus the author name, contact email, and description that Dataverse requires for every dataset. Subject is optional.

Zenodo: the creator name and a description for the deposition. Affiliation is optional.

Click Create. DataPipe creates the folder, dataset, or deposition for you and opens the experiment dashboard, which links straight to it.

The dashboard this opens is where you get the experiment ID, watch sessions arrive, and change any setting later. Creating an experiment

4

Configure the experiment

The experiment dashboard has a few optional features you can turn on:

Condition assignment: give each participant the next condition number in order. DataPipe cycles through conditions (0, 1, 2, ... back to 0).

Data validation: check that incoming data is valid JSON or CSV, and optionally that it contains the fields you name. This helps keep junk submissions out of your storage.

Session limit: cap how many data files DataPipe will accept. You can always raise the limit later.

Psych-DS metadata: automatically write metadata in the Psych-DS format, updated after each session. See how it works in the docs.

Turn on only the features you need, and only while you're actively collecting data. DataPipe opens a path into your storage provider, and validation and session limits help keep unwanted submissions out.

Each of these settings has its own page, with the fine print on conditions, validation, and session limits. The four switches

5

Add code to your experiment

Now add the code that sends data from your experiment to DataPipe. If you use jsPsych, we recommend the @jspsych/extension-pipe extension. Otherwise, use the datapipe-client JavaScript library.

The code is the same whichever storage provider you chose. Your experiment sends data to DataPipe, and DataPipe handles the rest. Your experiment dashboard has ready-to-paste snippets for both jsPsych and plain JavaScript. Go to My Experiments, select your experiment, and copy the code from the Code Samples panel.

By default, the jsPsych extension saves data as it's produced, not only when the experiment ends, so a participant who closes the tab partway through doesn't take all of their data with them. The datapipe-client library does the same once your experiment starts a session with it. See Saving as you go.

The same snippets, plus what each response means and the 32 MB request limit. Sending data from your experiment

6

Publish your experiment online

Host your experiment on any web server: university hosting, GitHub Pages, Netlify, or whatever you prefer. Here's a quick guide for GitHub Pages.

7

Activate and test

Back on the experiment dashboard, turn on Accept new data. If your experiment sends audio, video, or images, turn on Accept base64 file uploads as well.

Then run through your experiment once to check that the data arrives. The experiment dashboard links straight to your Drive folder, Dataverse dataset, or Zenodo deposition, and your file should show up there shortly after you finish.

8

When data collection ends

When your study on Zenodo is finished, finalize the experiment from its dashboard. DataPipe merges every remaining data file into a single archive and stops accepting new submissions, which keeps the deposition under Zenodo's file limit and makes the dataset easier to share and cite. Finalizing can't be undone, so only do it when you're certain no more data is coming. Google Drive and Dataverse don't have that file-count ceiling, so there's nothing to finalize there. Just turn off data collection when you're done.

On Zenodo, finalizing prepares the deposition but doesn't publish it. Publishing the record, and issuing the DOI that comes with it, is your decision and happens on Zenodo itself.

What finalizing does, which providers support it, and what happens to any uploads still queued when you finalize. Finishing a study