These terms cover your organization's ("you," "your org") use of Soil, software that connects to Jira, GitLab, and, on the paid plan, GitHub, Slack, Google Drive/Calendar/Gmail, Outlook Calendar, PagerDuty, HubSpot, Freshdesk, your own Stripe or Razorpay, AWS Cost, and Zoom, to summarize engineering work and answer questions about it. By creating an account or connecting an integration, you agree to these terms.
What Soil is (and isn't)
Soil computes facts about your connected tools using deterministic, rules-based code, and uses those facts to write a weekly plain-language brief and to answer direct questions you ask it. Where an AI model is used, it only turns already-computed facts into readable text — it does not independently decide what to fetch or verify. Soil is a reporting and summarization tool: it does not replace your own judgment, and every claim it makes is meant to link back to the specific ticket, merge request, or message it came from so you can verify it yourself.
Beta status — no warranty
Soil is offered as-is, in active development, with no warranty of any kind, express or implied, including fitness for a particular purpose. There is no uptime guarantee — and that is a statement about the software before it is a disclaimer: no availability target, response-time target or service-level agreement exists anywhere in Soil's code, configuration or deployment files. We aim to keep the service available and your data intact but make no promises about specific uptime or response time.
Not settled yet. Whether this beta framing is still accurate at public launch, and
what enforceable wording a warranty disclaimer needs, are a lawyer's call and the owner's, not the
engineering team's. Both are listed as open questions in this repository's
docs/NEEDS_FROM_KARTIK.md, and are part of what the review named in the banner above has
to settle.
Your responsibilities
- You're responsible for the accuracy of the credentials/OAuth grants you connect, and for only connecting accounts and Slack channels/Drive folders you have the right to share with your team via Soil.
- An org admin is responsible for who else they invite as a member of their organization, and for what they turn on (e.g. the Slack bot's ability to post, or the Actions approval queue's ability to send a real Slack DM once a human approves it).
- You agree not to use Soil to access data you're not authorized to access, or to attempt to circumvent the per-organization data isolation the product is built around.
Payment
Free-plan use (Jira + GitLab, weekly brief only) requires no payment. Paid ("Team") plan use is
billed through Stripe on a recurring basis. What the software does: checkout runs on Stripe's own hosted
page, and cancelling is done in Stripe's hosted billing portal, which Soil links to and does not
reimplement (soil/billing.py's create_checkout_session and
create_billing_portal_session). Cancelling stops future charges. Soil's own code never
issues a refund — it contains no refund path at all.
Not settled yet. Soil has no cancellation or refund policy. Rather than invent a
window here, this page states the absence: until a policy is written and reviewed, the only terms that
apply to a charge are the ones Stripe shows you at checkout. The open question is recorded in
docs/NEEDS_FROM_KARTIK.md.
Data ownership and deletion
Your organization's data is yours. Soil stores it to provide the service (see the Privacy Policy for what's stored and why) and does not claim ownership of it or use it for any purpose beyond running Soil for your organization. An org admin can export or permanently delete the organization's data at any time from Settings, self-serve.
What "delete" actually does, in the code that does it (soil/store.py's
delete_organization, reached from the Settings "Danger zone" route, which first makes an
admin type the organization's own slug): Soil deletes the organization row, and because every org-scoped
table carries a database-enforced ON DELETE CASCADE foreign key back to it, Postgres
performs the entire cascade server-side in that one statement. It is immediate —
no queue, no grace period, no "deleted" flag left behind — and irreversible:
Soil keeps no second copy to restore from and has no undelete path. Two things survive on purpose. The
audit-log entry recording that the deletion happened is written first, in the same transaction, and
holds the organization's name and slug and none of its data. The user accounts themselves are never
touched, because a person may belong to another organization too. Disconnecting a single tool is the
narrower version of the same thing: it deletes that tool's stored credential and every row synced from
it, immediately (disconnect_integration).
Not settled yet. How long Soil keeps an organization's data when nobody deletes it,
and how long a deleted organization's rows may survive inside database backups, are not decided.
Nothing in the code implies an answer to either, so this page states no period at all. Both are open
questions in docs/NEEDS_FROM_KARTIK.md.
Termination
You may stop using Soil and disconnect your integrations at any time, and an org admin can delete the organization outright from Settings.
What the software does today: nothing in Soil suspends or terminates an account. There is no
suspension state on an organization and no code path that disables one. The only automatic consequence
of a lapsed payment is that the paid-plan connectors stop being offered and the organization reads as
the Free plan again (soil/billing.py's is_pro and
_DEAD_SUBSCRIPTION_STATUSES); no data is deleted by that.
Not settled yet. The conditions under which Soil may suspend or terminate an account
— abuse, non-payment, breach of these terms — are not decided, and this page will not invent
them. Open question in docs/NEEDS_FROM_KARTIK.md.
Changes to these terms
Since this document is a draft, expect it to change materially before public launch, and periodically afterward. The date under the heading above is the only version marker this page has.
Not settled yet. How continuing users will be told about a material change is not
decided. Soil can send email to an organization's address (soil/email.py), but no code
sends a terms-change notice, and Soil keeps no record of who accepted which version of this document,
so this page claims neither. Open question in docs/NEEDS_FROM_KARTIK.md.
Questions
There is no published contact address yet. No support mailbox is configured anywhere
in this deployment, and naming one that does not exist would be worse than saying so. Until an address
is published and this document has been reviewed, reach the person who invited you to your organization,
or whoever runs the Soil deployment you signed up on. Publishing a real address is an open item in
docs/NEEDS_FROM_KARTIK.md.