Business and enterprise integrations for Data Machine.
This plugin extends Data Machine with business-focused integrations including:
- Google Sheets: Fetch data from spreadsheets and append data for reporting
- Slack: Post messages and fetch conversations from channels
- Discord: Post messages and fetch messages from server channels
- WordPress 6.9+
- PHP 8.2+
- Data Machine core plugin (required)
- Install and activate Data Machine core plugin
- Upload and activate this plugin
- Configure Google Sheets authentication in Data Machine settings
- Create flows using the Google Sheets handlers
- Go to Google Cloud Console
- Create a new project or select existing
- Enable the Google Sheets API
- Create OAuth 2.0 credentials (Web application type)
- Add your site's URL as authorized redirect URI
- Copy Client ID and Client Secret to Data Machine settings
- Authenticate the handler
Fetches data from Google Sheets with three processing modes:
- By Row: Process one row at a time (deduplication supported)
- By Column: Process one column at a time
- Full Spreadsheet: Process entire sheet at once
Appends structured data to Google Sheets with customizable column mapping.
Slack integration uses a Bot Token (xoxb-...) rather than OAuth2. The token is long-lived and managed in your Slack App settings.
- Go to Slack API: Applications
- Click Create New App → From scratch
- Give it a name (e.g., "Data Machine") and select your workspace
- Go to OAuth & Permissions in the sidebar
- Under Bot Token Scopes, add:
chat:write— Send messageschannels:history— Read messages from public channelsgroups:history— Read messages from private channelschannels:read— List public channels (optional)groups:read— List private channels (optional)
- Click Install to Workspace (or reinstall if already installed)
- Copy the Bot OAuth Token (
xoxb-...)
- Go to Data Machine → Settings in WordPress admin
- Find the Slack provider configuration
- Paste your Bot OAuth Token
- Click Validate to verify the connection
The bot must be explicitly added to any channel it should post to or read from:
- Open the channel in Slack
- Type
/invite @Data Machine(or whatever you named your app)
Posts messages to a configured Slack channel. Supports:
- Plain text and Slack mrkdwn formatting
- Source URL appending
- Thread replies (reply to a specific message)
- Link unfurling (rich previews)
Fetches messages from a configured Slack channel with:
- Configurable message limit (1-1000)
- Time-based filtering (oldest/latest timestamps)
- Per-message deduplication (skips already-processed messages)
- Automatic filtering of join/leave noise
datamachine/post-message-slack— Post a message to any channeldatamachine/fetch-messages-slack— Fetch messages from any channel
Discord integration uses a Bot Token from the Discord Developer Portal. The token is long-lived and managed in your application settings.
- Go to Discord Developer Portal
- Click New Application, give it a name (e.g., "Data Machine")
- Go to Bot in the sidebar
- Click Reset Token and copy the token (you only see it once)
- Under Privileged Gateway Intents, enable any intents your use case requires
- Go to OAuth2 → URL Generator in the sidebar
- Under Scopes, select
bot - Under Bot Permissions, select:
Send Messages— Post messages to channelsRead Message History— Fetch messages from channels
- Copy the generated URL and open it to invite the bot to your server
- Go to Data Machine → Settings in WordPress admin
- Find the Discord provider configuration
- Paste your Bot Token
- Click Validate to verify the connection
The bot can see channels based on its server permissions:
- Ensure the bot's role has Read Messages and Send Messages permissions in the target channel
- For private channels, explicitly grant access to the bot's role
Posts messages to a configured Discord channel. Supports:
- Plain text messages
- Source URL appending
- Discord embed objects for rich formatting
Fetches messages from a configured Discord channel with:
- Configurable message limit (1-100)
- Pagination via before/after message IDs
- Per-message deduplication (skips already-processed messages)
- Automatic filtering of join/leave and system messages
datamachine/post-message-discord— Post a message to any channeldatamachine/fetch-messages-discord— Fetch messages from any channel
GPL v2 or later
Chris Huber - chubes.net