Plex and Looker integration
Plex runs manufacturing and finance for discrete producers. Looker powers analytics and dashboards on top of your data warehouse. Connecting the two keeps your operational and financial data flowing into analytics without manual exports. Purchase orders, invoices, and inventory from Plex land in your warehouse automatically, so your dashboards reflect current production status and costs. ml-connector handles the different APIs and keeps the sync on a schedule that matches your business cycle.
What moves between them
The main flow runs from Plex into Looker. ml-connector polls Plex purchase orders, invoices, inventory, and GL accounts on a configurable interval aligned with your planning cycle (daily or weekly typical), filters by modified date to pick up changes, and maps the records to Looker scheduled plans that deliver the data to your warehouse via S3 or SFTP. The sync is unidirectional; Looker serves analytics only and does not write back to Plex.
How ml-connector handles it
ml-connector stores Plex OAuth2 credentials encrypted and refreshes the bearer token on every poll, since Plex tokens do not carry a refresh_token and must be re-acquired from https://accounts.plex.com/oauth2/token. It polls Plex REST APIs on a configurable interval with filters on modified_date to detect changes, and it implements exponential backoff on HTTP 429 since Plex rate limits are not publicly documented. Because Plex enforces role-based permissions, the integration user must have the correct Plex role assigned or API calls will return 403 or empty results; this is validated during connection setup. For Looker, ml-connector refreshes the OAuth2 token on each call since Looker tokens expire after one hour and do not refresh. Purchase orders and invoices are mapped to the matching Looker queries, and the output is scheduled for delivery to your warehouse via S3 or SFTP using Looker's scheduled plans. Every record carries a full audit trail and can be replayed if a downstream load fails.
A real-world example
A mid-sized discrete manufacturer builds automotive components and uses Plex for production, procurement, and inventory. The finance and operations teams need current visibility into purchase orders, supplier performance, and cost by product line, and they use Looker dashboards for daily reporting. Before the integration, the reporting team exported purchase orders and invoice summaries from Plex twice daily and manually uploaded them to the warehouse, then refreshed Looker dashboards. With Plex and Looker connected, purchase orders and invoices flow into the warehouse on a morning and afternoon schedule, Looker dashboards refresh automatically, and the finance team has current data without manual steps.
What you can do
- Poll Plex purchase orders, invoices, and inventory on a configurable schedule and sync them to Looker scheduled plans.
- Handle Plex OAuth2 authentication and re-acquire tokens on every poll since Plex tokens do not carry a refresh_token.
- Map Plex GL accounts, suppliers, and parts to Looker queries so financial and operational data land in the correct warehouse tables.
- Implement exponential backoff on Plex rate limit responses and validate integration user role permissions before connecting.
- Deliver Plex data to your warehouse via Looker scheduled plans to S3 or SFTP with full audit trail and replay on failure.
Questions
- Which direction does data move between Plex and Looker?
- The main flow is Plex into Looker. Purchase orders, invoices, inventory, and GL accounts from Plex are polled and mapped to Looker queries and scheduled plans, which deliver the data to your warehouse. Looker serves as the analytics layer and does not write back to Plex.
- How does ml-connector handle Plex OAuth2 tokens and rate limits?
- Plex OAuth2 tokens do not carry a refresh_token, so ml-connector refreshes the bearer token on every poll by calling https://accounts.plex.com/oauth2/token with the client credentials. Plex rate limits are not publicly documented, so ml-connector implements exponential backoff on HTTP 429 responses to avoid losing data.
- What is the impact of Plex role-based permissions on the integration?
- Plex enforces role-based access control, so the integration user must have the correct Plex role assigned or API calls will return 403 or empty results. ml-connector validates the integration user role during connection setup and alerts if permissions are insufficient.
Related integrations
More Plex integrations
Other systems that connect to Looker
Connect Plex and Looker
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started