# Overview
# What are Components?
Components are Node.js modules that run on Pipedream's serverless infrastructure. They can use Pipedream managed auth for 300+ apps (for both OAuth and key-based APIs) and use most npm packages with no npm install
or package.json
required.
Components are most commonly used as the building blocks of Pipedream workflows, but they can also be used like typical serverless functions. You can explore curated components for popular apps in Pipedream's Marketplace and GitHub repo or you can author and share your own.
# Component Types
Pipedream supports two types of components — sources and actions.
# Sources
Sources must be instantiated and they run as independent resources on Pipedream. They are commonly used as workflow triggers (but can also be used as standalone serverless functions).
Capabilities
- Accept user input on deploy via
props
- Trigger on HTTP requests, timers, cron schedules, or manually
- Emit events that can be inspected, trigger Pipedream workflows and that can be consumed in your own app via API
- Store and retrieve state using the built-in key-value store
- Use any of Pipedream's built-in deduping strategies
- Deploy via Pipedream's UI, CLI or API
Example
The Search Mentions source for Twitter is a prebuilt component in Pipedream's registry that can be deployed in seconds and emits new Tweets that match a search query. After a user configures and deploys it, the deployed component polls the Twitter API for new results. When new results are found, each new result is emitted as an event that may be inspected and used to trigger a workflow.
# Actions
Actions are components that may be used as steps in a workflow. Unlike sources, actions cannot run independently (outside of a workflow).
Capabilities
- Accept user input via
props
- May
return
JSON serializable data
Example
The Add Single Row action for Google Sheets is a prebuilt component in Pipedream's registry that can be added to a workflow and configured in seconds. Users can configure it in seconds and send workflow data to Google Sheets without having to learn the Google Sheets API.
# Using Components
Components may be instantiated or added to workflows via Pipedream's UI.
# Developing Components
Develop components locally using your preferred code editor (and maintain your code in your own GitHub repo) and deploy or publish using Pipedream's CLI.
- Sources may be deployed directly from local code or published to your account and instantiated via Pipedream's UI
- Actions may only be published — published actions may be added to workflows via Pipedream's UI
Published components are only available to your own account by default. If published to a team account, the component (source or action) may be discovered and selected by any member of the team.
# Prerequisites
- A free Pipedream account
- A free GitHub account
- Basic proficiency with Node.js or Javascript
- Pipedream CLI
Finally, the target app must be integrated with Pipedream. You can explore all apps supported by Pipedream in the marketplace. If your app is not listed, please create a GitHub issue to request it and reach out to our team to let us know that you're blocked on source or action development.
# Quickstart Guides
# Component API Reference
After getting familiar with source/action development using the quickstart guides, check out the Component API Reference and examples on GitHub to learn more.
# Sharing Components
Contribute to the Pipedream community by publishing and sharing new components, and contributing to the maintenance of existing components.
# Verified Components
Pipedream maintains an open source registry of components (sources and actions) that have been curated for the community. Registered components are verified by Pipedream through the GitHub PR process and:
- Can be trusted by end users
- Follow consistent patterns for usability
- Are supported by Pipedream if issues arise
Registered components also appear in the Pipedream marketplace and are listed in Pipedream's UI when building workflows.
# Community Components
Developers may create, deploy and share components that do not conform to these guidelines, but they will not be eligible to be listed in the curated registry (e.g., they may be hosted in a Github repo). If you develop a component that does not adhere to these guidelines, but you believe there is value to the broader community, please reach out in our community forum.