# Welcome

## Welcome to ETL++

> **ETL++** is an API → Airtable connector by **Autometa Solutions**. Bring data from any REST API into Airtable, think of it like Postman, with ETL capabilities to transform data on the way in, and keep it synced on a schedule—no servers needed.

***

### What you can do

* **Connect any HTTP API** by URL
* **Handle auth** with OAuth 2.0, API key, Basic, Bearer, and more
* **Map response → Airtable** fields (with upsert keys to avoid duplicates)
* **Paginate** (cursor, next URL, link header, page number)
* **Schedule** automatic runs (as frequent as every 5 minutes)
* **Log** every run with rows fetched/written, retries, and rate‑limit handling

***

### How it works (at a glance)

1. **Create a Request** in the ETL++ extension
2. **Authenticate** (OAuth/API key/etc.)
3. **Configure endpoint** (URL, headers, query/body)
4. **Preview & Map** JSON/CSV fields to your Airtable table
5. **Set pagination** (if needed) and **choose an upsert key**
6. **Run once** or **schedule** it to keep data fresh

***

### Why ETL++

* ⚡ **Fast & resilient**: concurrency with rate‑limit aware backoff
* ♻️ **Incremental**: use updated timestamps or cursors
* 🧩 **Flexible**: works with most APIs and response shapes
* 🔐 **Secure**: token storage + least‑privilege patterns
* 🧠 **Observable**: run logs, metrics, and planned alerts

***

### Requirements

* Airtable base with a target table
* Appropriate API access (keys/OAuth scopes) for your source system
* Air Table token for schedules
* (Optional) Admin rights to create fields in the base

***

### Need help?

* **Setup & FAQs** → see the left‑hand nav
* **Troubleshooting** → common fixes and how to collect logs
* **Support** → [requests@autometasolutions.com](mailto:support@autometa-solutions.com)

***

### Release status

> **Status:** Under review&#x20;

### ❓ FAQ

**How do I avoid duplicate rows?**\
Use `upsert_key` and CDC column.

**Can I run hourly?**\
Yes—see **Schedules**.
