@runtimeai/runtimecrm
v1.0.0
Published
Official TypeScript/JavaScript SDK for the RuntimeCRM API
Readme
@runtimeai/runtimecrm
Official TypeScript/JavaScript SDK for the RuntimeCRM API. Uses native fetch — no additional runtime dependencies.
Installation
npm install @runtimeai/runtimecrm
# or
yarn add @runtimeai/runtimecrmQuick start
import { RuntimeCRMClient } from '@runtimeai/runtimecrm';
const client = new RuntimeCRMClient({
baseURL: 'https://api.runtimecrm.com',
apiKey: 'rcrm_key_your_api_key',
});
async function main() {
// Create a contact
const contact = await client.createContact({
email: '[email protected]',
name: 'Alice Johnson',
title: 'VP of Engineering',
});
console.log('Created contact:', contact.id);
// Enroll into a sequence
await client.enrollContacts('seq_abc123', [contact.id]);
// Run prospect discovery and wait for it
const job = await client.runProspectDiscovery({
mode: 'enrich_contact',
contact_id: contact.id,
});
const result = await client.waitForJob(job.id, 120_000);
console.log('Discovery status:', result.status);
// List unactioned signals
const { signals } = await client.listSignals({ actioned: false, limit: 20 });
for (const signal of signals) {
console.log(`Signal [${signal.type}]: ${signal.summary}`);
await client.actionSignal(signal.id, 'enroll');
}
// Check pipeline
const pipeline = await client.getPipeline();
for (const stage of pipeline.stages) {
console.log(`${stage.name}: ${stage.deal_count} deals, $${stage.total_value.toLocaleString()}`);
}
}
main().catch(console.error);Authentication
All requests require a Bearer API key. Generate keys in the RuntimeCRM console at app.runtimecrm.com.
Error handling
HTTP 4xx/5xx responses throw an Error with the status code and API error message. Wrap calls in try/catch:
try {
const contact = await client.getContact('nonexistent-id');
} catch (err) {
console.error(err.message); // "RuntimeCRM API error 404: contact not found"
}