Skip to content

Umitake Outlook Connector for Kintone — Data Handling

Email bodies and attachments pass through our server but are never stored. What we do hold, and for how long.

Last updated: August 26, 2026

ItemDetail
Version1.0
ProductUmitake Outlook Connector for Kintone
StatusForms part of our Privacy Policy

The most important fact: email bodies, subjects, and attachments pass through our servers but are never stored on them. They are stored in your kintone.

It follows that we cannot retrieve your past emails.

Unlike our other plugins, which only distribute JavaScript, this product runs a continuously operating server that processes your email data. This document therefore sets out exactly what we hold and for how long.

For the CDN and license verification common to every product, see the shared infrastructure document.

This document describes what is implemented, not what is intended. Every retention period stated here is enforced by deletion code that runs daily.

1. Our Role

You — the organisation using kintone — are the controller, and we are the processor.

We receive your email data and connection details on your instructions and process them in order to write them into your kintone. You determine the purpose and scope of that processing.

If your IT department needs this document for vendor due diligence, it is written to be used directly as review material.

2. Data Flow

Your Microsoft 365 ──(1)──> Our server (Fly.io, USA) ──(2)──> Your kintone
                                  │
                                  ├──(3)──> Sentry (error monitoring)
                                  └──(4)──> stdout (Fly logs)
#What flowsStored
(1)Email bodies, subjects, attachments, recipients, calendar eventsIn memory only; discarded once processing completes
(2)The same (written into your history app)Stored in your kintone (you decide how long)
(3)Exception types, stack traces, error codes. Bodies, attachments, subjects, and tokens are never sent. Email addresses are maskedPer Sentry's retention
(4)Processing records, with the same masking and removal as (3)Fly does not retain these persistently (no log drain is configured)

Why the data passes through our server

Consolidating the mail of several staff members into a single record requires a server to hold each user's token and fetch across all of them. A browser-only architecture cannot deliver this feature at all.

3. What We Store

Not a single piece of email content is stored. We store only connection and synchronisation state.

TableContentsPersonal data
tenantskintone domain, Microsoft tenant ID, feature flags, consented scopes, shared token (encrypted), license key (encrypted)Domain (organisation-identifying)
kintone_appskintone API tokens for the history app and others (encrypted)
user_connectionsPer-connection refresh token (encrypted), kintone user ID / display name, Microsoft 365 email address, granted scopesName, email address
sync_statesLast sync time per watched target, delta continuation token, consecutive failure count
sync_errorsFailure records (error code, HTTP status, request ID). No bodies or recipients
import_failuresThe identifier of a message that failed to import, plus a failure count. No bodyMessage identifier
connection_historyConnection and disconnection history (who, when)Email address, kintone user ID
calendar_eventsEvent ID and the creator's display nameDisplay name
auth_noncesSingle-use token for starting a connectionkintone user ID / display name

On encryption. All tokens are stored encrypted with AES-256-GCM. The encryption key is managed separately from the database, so a breach of the database alone would not allow decryption.

4. What Transits but Is Not Stored

Passes through our serverStored on our server
Email bodyYes (once on import, once on send)No
AttachmentsYes (same)No
SubjectYesNo
Recipient and sender addressesYesOnly the connecting user's own address (user_connections in §3)

Everything is stored in your kintone (the history app). Reading also happens directly in kintone, so who can read an email is determined solely by kintone record permissions. We play no part in it.

5. Subprocessors and Locations

ProviderPurposeData sentData not sentLocation
Microsoft (Graph API)The feature itselfThe mail you send and receive, and which items to fetchYour Microsoft tenant
Fly.ioServer runtimeWhere all of the above processing runsUnited States (Virginia)
Upstash (Redis)Throughput controlPer-tenant counters onlyNo email bodies, recipients, or tokensUnited States
SentryError monitoringException types, stack traces, error codes, masked email addresses (t***@example.com)Bodies, attachments, subjects, tokens, secretsUnited States
license.umitake.com (Vercel / Neon)License verificationkintone domain, license keyNo personal dataUnited States

Sentry receives doubly scrubbed data

Separately from redaction at logging time, the local variables and request context that the monitoring SDK collects automatically from exceptions are also stripped before transmission. Anything slipping past this point would leave email content in our monitoring environment, so encryption keys, bodies, and attachments are removed wholesale by key name, and any email address appearing in a string is masked.

Where the data lives

Our servers are in the United States (Virginia). Your personal data is transferred outside Japan. Moving to a Japan region is technically feasible but is not the current arrangement.

Sentry and the license verification infrastructure are also in the United States. Note that kintone itself is a service you contract for directly with Cybozu, Inc. and is outside our control.

See the cross-border transfer section of our Privacy Policy for details.

6. Retention Periods

Every period below is enforced by deletion code that runs once a day.

DataRetentionHow this is enforced
Email bodies, subjects, attachmentsNot storedMemory only
tenants (domain, tenant ID, encrypted tokens, encrypted license key)30 days after cancellationDaily automated deletion (implemented)
kintone_apps (encrypted API tokens)30 days after cancellationAs above
connection_history30 days after cancellationAs above
calendar_events (event ID, creator display name)30 days after cancellationAs above
user_connections (name, email address, encrypted tokens)Until disconnection (also removed when the tenant is deleted)As above
sync_statesUntil disconnectionAs above
sync_errors (error codes only)30 daysAs above
import_failures (message identifiers)Until import succeeds or retries are abandonedAs above
auth_nonces (temporary tokens)1 dayAs above
License records and verification logsIndefiniteAs described in §6 of the shared infrastructure document

7. On Cancellation and Disconnection

Thirty days after a license becomes invalid, all data for that tenant is deleted — tokens, connection details, and synchronisation state, along with their related rows.

We do not delete immediately so that a customer whose license lapsed temporarily for billing reasons is not forced to have every user reconnect and reconfigure on resuming.

How the 30 days are counted

IT departments ask about this regularly, so we state it explicitly:

The clock starts only when license verification returns an explicit "invalid" result. It does not start when the license server is simply unreachable. If the license becomes valid again, the clock is cleared.

This is deliberate: it prevents a prolonged outage of our license server from destroying customer data.

Emails in your kintone are outside our control and we never touch them. History app records remain after cancellation.

8. What We Cannot See

Customers always check these points, so we state them plainly:

  • We cannot see email content. Because it is never stored, we cannot retrieve your past emails.
  • We cannot see your kintone records. You issue the API token and you decide its permissions.
  • We cannot see who read which email. Reading happens entirely within kintone.

What we can see is the email addresses of connected users and whether synchronisation succeeded.

9. Your Responsibilities

History app permissions are the effective visibility scope for email

This is the single most important design decision for this product.

Because the product consolidates several staff members' mail into one app, anyone who can open the history app can read emails that are not associated with them.

If you want emails visible only through a case or deal record, you must restrict record-level view permissions on the history app itself. This is something you design, not us.

Other

  • Preventing misdirected email. Verifying recipients in the send feature is something your own operating procedures must cover.
  • Issuing kintone API tokens and setting permissions. You issue the token and decide what it may access.
  • Microsoft 365 admin consent and scopes. The permissions this product requests are shown on the admin consent screen for your review.

10. Contact

For questions about this document or help completing a security questionnaire:

Umitake Email: [email protected]

Related: Shared infrastructure · Privacy Policy · Terms of Service