Superseded by v1.3. v1.3 adds AI-assisted export creation.
Release notes

SnowExporter v1.2

Now delivers to Slack and Microsoft Teams. Pick a channel, get results in chat — with an optional downloadable file for the long stuff.

Building on the UX and performance improvements that landed in v1.1 as a patch (wizard query previews render faster, scheduled-task startup latency reduced, destinations page loads faster with many entries), v1.2 adds two marquee delivery modes and reorganizes Settings for clarity.

New delivery modes

💬 Slack — channel message

Pick a Slack channel as an export destination. Results render as a monospace table directly in the channel (up to 10 rows + summary line). For larger results, an optional downloadable file is attached via a 24-hour presigned link.

💬 Microsoft Teams — channel message

Same shape as the Slack mode, using Teams MessageCards. File attachments render as a clickable Download button so larger results are one click away.

Slack and Teams destinations are managed exactly like email, internal stage, and external cloud destinations: define many, document who owns each one, and pick the right channel at export time. The activity dashboard and audit log treat them as first-class delivery modes alongside the others.

Settings reorganized

  • Email recipients, Slack channels, and Teams channels now all live under a single 📣 Notifications tab, with sub-tabs for each channel type.
  • Every channel integration carries optional Business Contact and Description fields, so admins can document who owns each endpoint and what it's used for — same pattern that already applies to export destinations.
  • A one-click Test button sits next to every channel so you can verify the integration is wired up without running a full export through the wizard.

Bug fixes worth calling out

Encrypted-garbage downloads fixed

Internal stages must be created with ENCRYPTION = (TYPE = 'SNOWFLAKE_SSE') for presigned download links to return readable files. Snowflake's default encryption returns raw encrypted bytes through presigned URLs — which manifested as garbled-looking downloads. The in-app setup helper now generates the CREATE STAGE SQL with the right encryption clause by default, and the README requires it explicitly.

Multi-line Slack and Teams messages no longer dropped silently

Fixed the webhook integration body template so messages containing newlines deliver intact instead of being silently truncated at the first line break.

GZIP default flipped to OFF for file attachments

Default-on was producing .csv.gz files that chat-app previews mishandled (Slack and Teams expanded them inline instead of treating them as attachments). GZIP is now off by default for chat-mode file attachments, with a ⚠️ warning displayed when a user toggles it back on for those modes.

Silent-failure bug fixed

Scheduled-run failures that previously looked like successes in the audit log now correctly surface as failures, with the actual error message attached.

Unchanged from v1.0

What didn't move.

  • The three account-level privileges remain the only three requested: IMPORTED PRIVILEGES ON SNOWFLAKE DB, EXECUTE TASK, EXECUTE MANAGED TASK
  • Per-destination role enforcement is still policy-only in v1.2 — runtime enforcement remains on the roadmap
  • Email body delivery still capped at 50 rows per send (Snowflake's SYSTEM$SEND_EMAIL constraint)
  • App state still lives in backend_schema and survives snow app upgrade — your channels, destinations, schedules, and audit log are preserved across the v1.0 → v1.2 jump

v1.2 is live on the Snowflake Marketplace.

Existing installs auto-upgrade — all your destinations, schedules, and audit history carry over.

Get it on the Marketplace See v1.3 release notes →