Skip to content

Execute Lambdas and Webhooks ​

API Reference: See the Webhooks / Lambdas API for the raw HTTP endpoints documented here.

The Qelos Lambdas SDK provides methods to interact with webhook integrations in the Qelos platform. This SDK allows you to trigger webhooks and execute integration targets.

Initialization ​

typescript
import { QelosSDK } from '@qelos/sdk';

const sdk = new QelosSDK({ 
  apiKey: 'your-api-key', 
  baseUrl: 'https://api.qelos.io' 
});
const lambdas = sdk.lambdas;

Execute a Webhook Integration ​

Execute a webhook integration with custom request options.

typescript
const result = await sdk.lambdas.execute('integration-123', {
  method: 'POST',
  headers: { 'X-Custom': 'value' },
  body: JSON.stringify({ key: 'value' })
});

HTTP Methods ​

The SDK provides convenience methods for different HTTP verbs:

POST Request ​

typescript
const result = await sdk.lambdas.post('integration-id', {
  body: { message: 'Hello', value: 42 }
});

GET Request ​

typescript
const result = await sdk.lambdas.get('integration-id');

PUT Request ​

typescript
const result = await sdk.lambdas.put('integration-id', {
  body: { update: 'data' }
});

DELETE Request ​

typescript
const result = await sdk.lambdas.delete('integration-id');

Complete Example ​

typescript
import { QelosSDK } from '@qelos/sdk';

const sdk = new QelosSDK({ 
  apiKey: process.env.QELOS_API_KEY,
  baseUrl: 'https://api.qelos.io'
});

// Trigger a webhook with POST data
const response = await sdk.lambdas.post('webhook-integration-id', {
  body: {
    event: 'user.created',
    userId: '12345',
    email: 'user@example.com'
  }
});

console.log('Webhook response:', response);

Error Handling ​

typescript
try {
  const result = await sdk.lambdas.post('integration-id', {
    body: { test: 'data' }
  });
  console.log('Success:', result);
} catch (error) {
  console.error('Webhook failed:', error);
  // Handle error appropriately
}

Supported Integration Types ​

The Lambdas SDK can trigger various types of integrations configured in Qelos:

  • HTTP/Webhook endpoints - Send HTTP requests to external services
  • AWS Lambda functions - Invoke AWS Lambda functions
  • Cloudflare Workers - Execute Cloudflare Worker scripts
  • Email services - Send emails via configured providers
  • AI services - Interact with AI models (OpenAI, Anthropic, etc.)
  • Custom integrations - Any custom integration type supported by Qelos

Response Format ​

The response from webhook executions varies based on the integration type:

typescript
// HTTP/Webhook response
{
  status: 200,
  data: { ... },
  headers: { ... }
}

// AWS Lambda response
{
  statusCode: 200,
  body: { ... },
  logResult: "..."
}

// Cloudflare Worker response
{
  success: true,
  data: { ... }
}

Advanced Usage ​

Custom Request Headers ​

typescript
// Execute with custom headers and method
const response = await sdk.lambdas.execute('integration-id', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer token',
    'X-Custom-Header': 'custom-value'
  },
  body: JSON.stringify({ data: 'payload' })
});

Query Parameters ​

typescript
// Include query parameters in the URL
const response = await sdk.lambdas.get('integration-id', {
  headers: {
    'Accept': 'application/json'
  }
});
// Note: Query parameters should be encoded in the integration URL itself

Best Practices ​

  1. Always handle errors - Wrap calls in try-catch blocks
  2. Validate integration IDs - Ensure the integration exists before calling
  3. Use appropriate HTTP methods - Match the method to the action (GET for data, POST for creation)
  4. Handle timeouts - Set appropriate timeout values for long-running operations
  5. Secure API keys - Store API keys securely, never expose them in client-side code

Rate Limits ​

Be aware of any rate limits imposed by:

  • The Qelos platform API
  • The target integration (e.g., AWS Lambda concurrency limits)
  • Downstream services

Implement retry logic with exponential backoff for resilient integrations.

Integration-Specific Examples ​

AWS Lambda ​

typescript
// Invoke AWS Lambda function
const result = await sdk.lambdas.post('aws-lambda-integration', {
  body: {
    action: 'process',
    data: { id: 123, value: 'test' }
  }
});

Cloudflare Worker ​

typescript
// Execute Cloudflare Worker
const result = await sdk.lambdas.post('cloudflare-worker-integration', {
  body: {
    method: 'GET',
    url: 'https://api.example.com/data'
  }
});

Email Service ​

typescript
// Send email via integration
const result = await sdk.lambdas.post('email-integration', {
  body: {
    to: 'user@example.com',
    subject: 'Welcome!',
    template: 'welcome-email'
  }
});

AI Service ​

typescript
// Call AI service integration
const result = await sdk.lambdas.post('ai-integration', {
  body: {
    prompt: 'Summarize this text',
    model: 'gpt-4',
    max_tokens: 100
  }
});

Build SaaS Products Without Limits.