Execute Lambdas and Webhooks ​
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 itselfBest Practices ​
- Always handle errors - Wrap calls in try-catch blocks
- Validate integration IDs - Ensure the integration exists before calling
- Use appropriate HTTP methods - Match the method to the action (GET for data, POST for creation)
- Handle timeouts - Set appropriate timeout values for long-running operations
- 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
}
});