# n8n-nodes-infomaniak

This package contains n8n nodes to interact with [Infomaniak](https://www.infomaniak.com) services.

## Services Supported

### Kchat

Kchat is Infomaniak's team messaging platform. This node allows you to:

- **Channels**
  - Create posts in channels
  - List posts from channels

- **Files**
  - Upload files to channels
  - Get file details

- **Users**
  - List users
  - Get user details

## Installation

### In n8n

From your n8n installation directory:

```bash
npm install n8n-nodes-infomaniak
```

Restart n8n and the Infomaniak nodes will be available in the nodes panel.

### For Development

1. Clone this repository
   ```bash
   git clone https://github.com/your-username/n8n-nodes-infomaniak.git
   ```

2. Install dependencies
   ```bash
   npm install
   ```

3. Build the code
   ```bash
   npm run build
   ```

4. Link to your n8n installation
   ```bash
   npm link
   ```

5. In your n8n installation directory
   ```bash
   cd ~/.n8n
   npm link n8n-nodes-infomaniak
   ```

## Usage

### Authentication

To use the Infomaniak nodes, you need:

1. A team slug (the subdomain of your Kchat instance, e.g., `myteam` for `myteam.kchat.infomaniak.com`)
2. An API key from Infomaniak

### Creating a workflow

1. Add the Infomaniak node to your workflow
2. Select the service you want to use (currently only Kchat is supported)
3. Choose the resource and operation
4. Configure the required parameters
5. Run your workflow

## Development

### Project Structure

```
├── credentials/          # Credential definitions
├── nodes/
│   └── Infomaniak/       # Main node definition
│       ├── services/     # Service-specific implementations
│       │   └── Kchat/    # Kchat service implementation
│       └── core/         # Core utilities and base classes
```

### Adding New Services

The architecture is designed to easily add new Infomaniak services:

1. Create a new directory under `nodes/Infomaniak/services/`
2. Implement the service description, operations, and API service classes
3. Update the main node to include the new service

## License

[MIT](LICENSE.md)
