> For the complete documentation index, see [llms.txt](https://docs.rishvi.co.uk/linnworks/llms.txt).
> Use it to discover all available pages before exploring further.

# Integrations and Partnerships

Learn how to connect Rishvi with third-party tools, leveraging partnerships for seamless workflow integration.


## Overview

Rishvi integrates seamlessly with leading platforms like Linnworks and Odoo ERP, enabling automated inventory management, sales synchronization, and custom workflows. You can connect e-commerce stores, ERP systems, and third-party services using APIs and webhooks. These integrations unlock efficiency by centralizing data across your multichannel operations.

<Callout kind="tip">
Review your partnership agreements and API limits before enabling integrations to ensure compliance and optimal performance.
</Callout>

## Featured Integrations

Explore key partnerships that power Rishvi's ecosystem.

<Columns cols={2}>
  <Card title="Linnworks" icon="package" href="/docs/linnworks-setup">
    Automate multichannel inventory and order fulfillment across platforms like Shopify and Amazon.
  </Card>
  <Card title="Odoo ERP" icon="database" href="/docs/odoo-connections">
    Sync finance, sales, and inventory data for streamlined operations.
  </Card>
  <Card title="Custom APIs" icon="code" href="#api-config">
    Build tailored connections with any service using Rishvi's RESTful API.
  </Card>
  <Card title="Webhooks" icon="zap" href="#webhook-setup">
    Receive real-time updates from Rishvi for instant event handling.
  </Card>
</Columns>

## Linnworks Setup with E-commerce Platforms

Connect Rishvi to Linnworks for unified inventory management. Follow these steps to link your e-commerce channels.

<Steps>
  <Step title="Create Linnworks Account" icon="user-plus">
    Sign up at your Linnworks dashboard and generate an API key.
  </Step>
  <Step title="Configure Channels" icon="settings">
    Add platforms like Shopify or Amazon in Linnworks.
  </Step>
  <Step title="Link to Rishvi" icon="link">
    In Rishvi dashboard, navigate to Integrations > Linnworks and paste your API key.
  </Step>
  <Step title="Sync Data" icon="refresh-cw">
    Trigger initial sync and monitor for errors.
  </Step>
</Steps>

<Tabs>
  <Tab title="Shopify" icon="shopping-cart">
    ```javascript
    // Linnworks API call from Rishvi
    const response = await fetch('https://api.example.com/linnworks/shopify/sync', {
      method: 'POST',
      headers: { 'Authorization': 'Bearer YOUR_LINNWORKS_TOKEN' },
      body: JSON.stringify({ shopId: 'your-shopify-id' })
    });
    ```
  </Tab>
  <Tab title="Amazon" icon="shopping-bag">
    ```javascript
    // Connect Amazon seller account
    const sync = await fetch('https://api.example.com/linnworks/amazon', {
      method: 'POST',
      headers: { 'Authorization': 'Bearer YOUR_LINNWORKS_TOKEN' },
      body: JSON.stringify({ sellerId: 'your-amazon-seller-id' })
    });
    ```
  </Tab>
</Tabs>

## Odoo ERP Connections

Integrate Rishvi with Odoo to manage finance and inventory in one system. Use Odoo's XML-RPC or REST API endpoints.

<CodeGroup tabs="JavaScript,Python">
```javascript
// JavaScript SDK example
import Rishvi from '@rishvi/sdk';
const rishvi = new Rishvi({ apiKey: 'YOUR_RISHVI_KEY' });
await rishvi.integrateOdoo({
  url: 'https://your-odoo-instance.com',
  db: 'your_db',
  username: 'admin',
  password: 'YOUR_PASSWORD'
});
```
```python
# Python example
from rishvi import Rishvi
client = Rishvi(api_key='YOUR_RISHVI_KEY')
client.integrate_odoo(
    url='https://your-odoo-instance.com',
    db='your_db',
    username='admin',
    password='YOUR_PASSWORD'
)
```
</CodeGroup>

<ParamField path="odoo_url" param-type="string" required="true">
Odoo instance base URL.
</ParamField>

<ParamField path="db" param-type="string" required="true">
Database name in Odoo.
</ParamField>

## Third-party API and Webhook Configurations

Set up webhooks for real-time events and use APIs for custom data flows.

### Webhook Setup

```mermaid
sequenceDiagram
    Rishvi->>+YourServer: POST /webhook
    YourServer-->>-Rishvi: 200 OK
    Note over Rishvi,YourServer: Events: order.created, inventory.updated
```

<Request tabs="JavaScript,cURL" show-lines="true">
````javascript
// Verify webhook signature
app.post('/webhook', (req, res) => {
  const signature = req.headers['x-rishvi-signature'];
  // Verify HMAC SHA256 with your webhook secret
  if (verifySignature(req.body, signature, WEBHOOK_SECRET)) {
    console.log('Event:', req.body.event);
    res.status(200).send('OK');
  }
});
````
````bash
# Test webhook with curl
curl -X POST https://your-webhook-url.com/webhook \
  -H "Content-Type: application/json" \
  -H "X-Rishvi-Signature: v1=abc123..." \
  -d '{"event": "order.created", "data": {"id": 123}}'
````
</Request>

### API Authentication

Use Bearer tokens for secure access.

<Response tabs="200,401">
````json
{
  "success": true,
  "data": {
    "integration_id": "int_123abc",
    "status": "active"
  }
}
````
````json
{
  "error": "Unauthorized",
  "message": "Invalid token"
}
````
</Response>

## Custom Integrations and Consultation

For bespoke needs, schedule a consultation.

<Expandable title="Advanced Configuration Options" default-open="false">

Configure custom fields and mappings.

```javascript
rishvi.setCustomMapping({
  linnworks_field: 'custom_sku',
  rishvi_field: 'external_id',
  transform: (value) => value.toUpperCase()
});
```

</Expandable>

<Callout kind="success">
Your integrations are now live. Monitor the Rishvi dashboard for sync status and logs.
</Callout>

## Next Steps

<Columns cols={2}>
  <Card title="API Reference" icon="book-open" href="/docs/api">
    Dive into full API documentation.
  </Card>
  <Card title="Troubleshooting" icon="help-circle" href="/docs/troubleshooting">
    Common issues and solutions.
  </Card>
</Columns>
