Send survey data where you already work
A connector is a task in your siamang.yaml: a target, a table
and the name of an encrypted project secret. It is committed with the
questionnaire, so where the data goes is part of the study's history rather
than something someone set up once in a UI.
- 12
- export today
- 2
- also import
- 3
- not yet running
Twelve targets that transfer
| Destination | Plan | Secret | What to know |
|---|---|---|---|
Google Sheets sheets | plus | GSHEETS_SA | Service-account JSON; the sheet must be shared with the account's client_email. 50,000 rows per run. |
Microsoft Excel 365 excel365 | plus | GRAPH_APP | Azure AD app registration with admin-consented Files.ReadWrite.All. Workbook and worksheet must already exist; 10,000 rows, because Graph caps the body. |
Supabase (Postgres) supabase also imports | plus | SUPABASE_DSN | The connection string from Project Settings → Database. |
Amazon S3, R2, MinIO s3 | pro | AWS_CREDS | Access key pair with PutObject; set endpoint for R2 or MinIO. A self-hosted endpoint must be reachable publicly — private addresses are refused. |
Google Cloud Storage gcs | pro | GCS_SA | Service-account JSON with Storage Object User. Single-request upload, so keep objects modest. |
Azure Blob Storage azure | pro | AZURE_BLOB | A shared access signature with Write on Blob — account keys are not accepted. |
Google BigQuery bigquery | pro | BQ_SA | Service-account JSON with BigQuery Data Editor and Job User. The dataset must exist; the table is replaced. |
Snowflake snowflake | pro | SNOWFLAKE | Key-pair auth with an unencrypted RSA private key. Rows insert 500 at a time, so large tables press against the five-minute budget. |
Your own Postgres database also imports | pro | TARGET_DB_DSN | A postgres:// or postgresql:// connection string. Postgres only. |
SFTP sftp | pro | SFTP_AUTH | Username with a password or a private key. The host key is not verified unless you set host_key_sha256 — set it. |
REDCap redcap | pro | REDCAP_TOKEN | A project API token. Column names must already match the instrument's field names, including the record-id field. |
Custom HTTP endpoint http | pro | HTTP_TOKEN | Optional bearer token. Posts CSV or JSON to your URL, with a 30-second timeout. |
What every connector does the same way
Configurable, not yet running
These can be declared and validated, but the transfer returns a clear “coming soon” rather than pretending to work.
- Airtable — Configurable today; the transfer answers an honest 409 until it ships.
- Dropbox — Configurable today; the transfer answers an honest 409 until it ships.
- Custom MCP servers — Corporate tier, not yet running.
Or just download it
Connectors push data out on your behalf, which is why they need a paid plan. Downloading your own responses does not — CSV, Excel, SPSS, Stata, Parquet and SQLite are available on every plan, including Free.
Questions
How many connectors actually work?
Twelve export today and two of those also import. Three more — Airtable, Dropbox and custom MCP servers — can be configured but answer a clear 409 when run, rather than failing quietly.
Do connectors sync on a schedule?
No. Connector runs are triggered manually or through the API. The scheduler handles analysis scripts, not connectors, so a nightly load means calling the run endpoint from your own scheduler.
Is the destination updated incrementally?
No — every export is a full replace of the destination table or object. There is no append or merge mode on export; the one append mode in the system is for imports.
Which plan do I need?
No connector is available on Free. Google Sheets, Excel 365 and Supabase are on Plus; storage, warehouses, your own Postgres, SFTP, REDCap and custom HTTP are on Pro. Pricing is per organisation, not per seat.
Can I just download the data instead?
Yes, and that is not plan-gated at all. CSV, Excel, SPSS, Stata, Parquet and SQLite downloads are available on every plan — see the export formats.
See it on a real study
The demo is a complete study — questionnaire, responses, analysis — with no account and nothing to install.