> For the complete documentation index, see [llms.txt](https://docs.riff.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.riff.ai/integrations/custom-integrations-v2.md).

# Custom Integrations

When the connector you need isn't in the native list, your agent can wire it up. Drop the service name and a link to its documentation in chat — the agent reads the docs, sets up authentication, and handles the API calls.

{% hint style="success" %}
**How to ask:** Tell your agent *"Integrate with \[service] so I can \[do this task]."* The agent researches the API, proposes the approach, and asks for your credentials once. Keys are stored in Secrets — never in code.
{% endhint %}

## ERP & Enterprise Systems

### Freight & Logistics

Track deliveries, calculate lead times, and trigger alerts when shipments are delayed — before they hit the ERP as exceptions.

* **DHL Express API** — shipment tracking, estimated delivery, customs status
* **FedEx Web Services** — real-time tracking, proof of delivery, transit time estimates
* **UPS Quantum View** — shipment visibility, exception notifications, delivery confirmation
* **project44** — multimodal freight visibility platform (road, rail, ocean, air)
* **Shippeo** — real-time road freight tracking and ETA predictions

**Typical use:** Agent monitors open PO delivery dates → queries freight API for current status → flags delays to procurement team before they become ERP exceptions

### EDI & B2B Messaging

Automate structured supplier data exchange without a full EDI VAN.

* **Cleo Integration Cloud** — EDI (X12, EDIFACT), AS2, SFTP orchestration
* **SPS Commerce** — pre-built retailer/supplier EDI connections
* **OpenText Trading Grid** — B2B integration network for purchase orders and invoices
* **AS2 / SFTP** — direct file exchange: 850 (PO), 855 (order acknowledgement), 856 (ASN), 810 (invoice)

**Typical use:** Agent reads inbound 855 order acknowledgement files → parses confirmation status → updates ERP and notifies buyer of any exceptions

### Supplier Portals & Compliance Databases

Query supplier data, certifications, and risk signals from external sources — without manual lookups.

* **Dun & Bradstreet (D\&B)** — supplier risk ratings, financial health, sanctions screening
* **EcoVadis** — supplier sustainability and ESG scorecards
* **Achilles** — supplier qualification and compliance data
* **Avetta** — contractor and supplier compliance management
* **REACH / RoHS compliance APIs** — chemical substance compliance for manufactured goods

**Typical use:** New supplier onboarding agent checks D\&B risk rating + EcoVadis score + REACH compliance before creating a vendor master record in the ERP

## Communication & Notifications

Keep your team and suppliers informed without manual emails.

### Email

Send order confirmations, delivery alerts, and exception notifications directly from your agents.

* **Microsoft Outlook / Microsoft 365** — send and read emails using your organisation's domain; the right choice for supplier-facing communication
* **SendGrid** — transactional email at scale; good for automated exception digests to internal teams
* **Postmark** — reliable transactional delivery with detailed open and bounce logging

### Messaging & Collaboration

* **Slack** — post procurement exception digests, approval requests, and delivery alerts to team channels
* **Microsoft Teams** — post notifications and adaptive cards to Teams channels for approval workflows

## AI & Document Processing

Process supplier documents, invoices, and contracts automatically — extract structured data without manual keying.

### Document Intelligence

* **Azure Document Intelligence (Form Recognizer)** — extract structured data from supplier invoices, delivery notes, and PO PDFs
* **Google Document AI** — invoice and receipt parsing, form extraction
* **Mindee** — invoice and receipt OCR with structured JSON output

**Typical use:** Agent receives invoice PDF by email → Document Intelligence extracts line items, PO reference, and totals → three-way match against ERP → approve or flag discrepancy

### AI Models

Useful for classification, summarisation, and decision support in procurement workflows.

* **OpenAI GPT-4o** — supplier email classification, contract clause extraction, exception summarisation
* **Anthropic Claude** — procurement policy compliance checking, supplier communication drafting
* **Azure OpenAI** — enterprise-grade deployment within your Azure tenant; data stays in region

<details>

<summary>What Riff handles when wiring a custom integration</summary>

* Stores API keys and credentials in **Secrets** — encrypted, never in code
* Sets up authentication (API key, OAuth 2.0, Basic Auth)
* Defines request and response structures
* Maps inputs and outputs across workflow steps
* Handles pagination, rate limits, retries, and error logging
* Sets up webhooks when needed and verifies signatures

</details>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.riff.ai/integrations/custom-integrations-v2.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
