# Introduction to Plugins (/docs/system-discovery/introduction-to-plugins)

In order to keep your Data Inventory up to date, Transcend automatically detects new data systems at your company, through our set of System Discovery plugins.

## Plugins [#plugins]

Transcend's System Discovery plugins are the easiest way to ensure your Data Inventory is both comprehensive and up-to-date on an ongoing basis. We’ve built plugins to detect new data systems as they appear in your organization—all you need to do is connect the plugin, turn on System Discovery, and we’ll begin scanning for systems.

Some examples of where Transcend can scan for new data systems:

- Your **single-sign-on provider** (like Okta) to detect data systems your team can sign in to.
- Your **cloud-hosting provider** (like AWS) to detect data systems like databases, buckets, and warehouses.
- Your **customer data platform** (like Segment) to detect your source and destination connections.
- Your **codebase** (like a JavaScript repo's `package.json`) to detect vendor SDKs.
- Your **websites** to detect new ad pixels, analytics tools, your monitoring stack, and any other client-side tracking technologies.

You can view the full list of integrations that support System Discovery in [Integrations](https://app.transcend.io/infrastructure/integrations/new?filters=%7B%22plugins%22%3A%5B%22DATA_SILO_DISCOVERY%22%5D%7D).

The authentication process may be different from system to system, but the controls for turning on System Discovery are the same. Let’s use [Okta](https://transcend.io/integration/okta) as an example.

### Plugin Concepts [#plugin-concepts]

There are two options for hooking your system up for System Discovery:

1. Transcend can either connect to a system directly and query it (**pull-based plugins**), or
2. You can query/scan your system yourself and upload the results to Transcend (**push-based plugins**).

An example of a **pull-based plugin** is our `Segment` integration. You can connect this integration and have Transcend query the Segment API to sync your Segment Connections to Transcend.

An example of a **push-based plugin** is our `JavaScript package.json` integration. Connecting this integration on Transcend will give you further instructions on how you can use our CLI tool to scan your JavaScript project dependencies for new data systems. Our CLI will scan for vendor SDKs in any `package.json` files it finds, and upload the entries to the Transcend backend to be classified. Using this approach, it's simple to integrate the Transcend CLI into your CI process.
