{"_id":"@abhaythakur/prabhcrm-sdk","_rev":"3-49016f5a0c6dd95da610201bcace20ed","name":"@abhaythakur/prabhcrm-sdk","dist-tags":{"latest":"1.1.0"},"versions":{"1.0.0":{"name":"@abhaythakur/prabhcrm-sdk","version":"1.0.0","keywords":["prabhcrm","crm","sdk","api","sales","leads","automation","ai","webhooks","multi-tenant"],"author":{"name":"PrabhCRM"},"license":"MIT","_id":"@abhaythakur/prabhcrm-sdk@1.0.0","maintainers":[{"name":"abhaythakur","email":"abhaythakur@aiprabh.com"}],"homepage":"https://docs.prabhcrm.com/sdk/javascript","bugs":{"url":"https://github.com/prabhcrm/sdk-javascript/issues"},"dist":{"shasum":"b3be2033222b2a2484010ae0bcb517c02a27100a","tarball":"https://registry.npmjs.org/@abhaythakur/prabhcrm-sdk/-/prabhcrm-sdk-1.0.0.tgz","fileCount":3,"integrity":"sha512-bLwZs/PEWOTeJLOXP9U2nMqxDUs88Ir05X3Oruwk70tQ1QjLN6QHaLZZWl7IDrbNLQw2SdU3K+Gp9OXs05JrCg==","signatures":[{"sig":"MEUCIQDXsKLDEpZqbaSq52E1vY4PLHDIMM5RZkJvF4dTs6f/PwIgIIRi10imB7XLY1yywZY9nyd78x1s9JimpkzptI4j7p0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9587},"main":"prabhcrm-sdk.js","types":"prabhcrm-sdk.d.ts","engines":{"node":">=14.0.0"},"gitHead":"5b0a83dff6c2fe203cbbdfdb8ded89ff6e8f692c","scripts":{"test":"jest"},"_npmUser":{"name":"abhaythakur","email":"abhaythakur@aiprabh.com"},"repository":{"url":"git+https://github.com/prabhcrm/sdk-javascript.git","type":"git"},"_npmVersion":"11.6.2","description":"Official JavaScript SDK for PrabhCRM Platform API","directories":{},"_nodeVersion":"25.2.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/prabhcrm-sdk_1.0.0_1763400960669_0.5272596230960889","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@abhaythakur/prabhcrm-sdk","version":"1.0.1","keywords":["prabhcrm","crm","sdk","api","sales","leads","automation","ai","webhooks","multi-tenant"],"author":{"name":"Abhay Thakur","email":"abhay@prabhcrm.com"},"license":"MIT","_id":"@abhaythakur/prabhcrm-sdk@1.0.1","maintainers":[{"name":"abhaythakur","email":"abhaythakur@aiprabh.com"}],"homepage":"https://prabhcrm.com","bugs":{"url":"https://github.com/prabhcrm/prabhcrm-sdk/issues"},"dist":{"shasum":"f53b4ad28fa62d0b7118d73581b58ae79dc915e7","tarball":"https://registry.npmjs.org/@abhaythakur/prabhcrm-sdk/-/prabhcrm-sdk-1.0.1.tgz","fileCount":3,"integrity":"sha512-S+5XRQY2UGbgoM7rLy2nfMr9+hghViVp/3Uo0jT04oaABHen8QXz1BohHRJw47ZqJKzVDUOYNOvTyKKe6IsYFg==","signatures":[{"sig":"MEQCIHiVGXlx6OX521VkISeEL2CuN9Yiof5bE/hLC2+zD/wkAiBf4e4LBpHMsgr5ihh9o0mgHLkoAdi5Y7gPVjUZ8IDb2w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9645},"main":"prabhcrm-sdk.js","types":"prabhcrm-sdk.d.ts","engines":{"node":">=14.0.0"},"gitHead":"37d3940e85064f7d4349efc9b678affc5243a9e4","scripts":{"test":"jest"},"_npmUser":{"name":"abhaythakur","email":"abhaythakur@aiprabh.com"},"repository":{"url":"git+https://github.com/prabhcrm/prabhcrm-sdk.git","type":"git"},"_npmVersion":"11.6.2","description":"Official JavaScript SDK for PrabhCRM Platform API","directories":{},"_nodeVersion":"25.2.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/prabhcrm-sdk_1.0.1_1763416144018_0.5146173891199617","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@abhaythakur/prabhcrm-sdk","version":"1.1.0","description":"Official JavaScript SDK for PrabhCRM Platform API - Now with LinkedIn, Video Meetings & Calendar Integration","main":"prabhcrm-sdk.js","types":"prabhcrm-sdk.d.ts","scripts":{"test":"jest"},"keywords":["prabhcrm","crm","sdk","api","sales","leads","automation","ai","webhooks","multi-tenant","linkedin","video-meetings","calendar","webrtc","real-time"],"author":{"name":"Abhay Thakur","email":"abhay@prabhcrm.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/prabhcrm/prabhcrm-sdk.git"},"bugs":{"url":"https://github.com/prabhcrm/prabhcrm-sdk/issues"},"homepage":"https://prabhcrm.com","engines":{"node":">=14.0.0"},"gitHead":"317e2e0d786abf5ffe98d962fa8b4670f350731a","_id":"@abhaythakur/prabhcrm-sdk@1.1.0","_nodeVersion":"25.2.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-F3bM8vd551izlC/pvCV5QLpWfl1nb2ri4GcJPBcX1jpevfCUBLV18ASPWVWxSCQrIHljRMFzY/hv7U8CBFr3zQ==","shasum":"4d7ccf9ce9c24f44d59009eab3dd09f09a4ab2da","tarball":"https://registry.npmjs.org/@abhaythakur/prabhcrm-sdk/-/prabhcrm-sdk-1.1.0.tgz","fileCount":3,"unpackedSize":22210,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCOgAGP/Y+lo/olOEcii40y/InoNqI8j3U+wtuVnGAjyAIgX5bLMbMkSjvhJPKBAT64kUsq3VuZjefNOgKsNR7Alv0="}]},"_npmUser":{"name":"abhaythakur","email":"abhaythakur@aiprabh.com"},"directories":{},"maintainers":[{"name":"abhaythakur","email":"abhaythakur@aiprabh.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/prabhcrm-sdk_1.1.0_1764824910330_0.9048249687258973"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-17T17:36:00.520Z","modified":"2025-12-04T05:08:30.653Z","1.0.0":"2025-11-17T17:36:00.860Z","1.0.1":"2025-11-17T21:49:04.208Z","1.1.0":"2025-12-04T05:08:30.490Z"},"bugs":{"url":"https://github.com/prabhcrm/prabhcrm-sdk/issues"},"author":{"name":"Abhay Thakur","email":"abhay@prabhcrm.com"},"license":"MIT","homepage":"https://prabhcrm.com","keywords":["prabhcrm","crm","sdk","api","sales","leads","automation","ai","webhooks","multi-tenant","linkedin","video-meetings","calendar","webrtc","real-time"],"repository":{"type":"git","url":"git+https://github.com/prabhcrm/prabhcrm-sdk.git"},"description":"Official JavaScript SDK for PrabhCRM Platform API - Now with LinkedIn, Video Meetings & Calendar Integration","maintainers":[{"name":"abhaythakur","email":"abhaythakur@aiprabh.com"}],"readme":"# PrabhCRM JavaScript SDK\r\n\r\nOfficial JavaScript SDK for integrating with PrabhCRM Platform API.\r\n\r\n## Installation\r\n\r\n```bash\r\nnpm install @abhaythakur/prabhcrm-sdk\r\n```\r\n\r\n## Quick Start\r\n\r\n```javascript\r\nimport PrabhCRM from '@abhaythakur/prabhcrm-sdk';\r\n\r\nconst crm = new PrabhCRM({\r\n  apiKey: 'your_api_key',\r\n  orgId: 'your_org_id'\r\n});\r\n\r\n// Create a lead\r\nconst lead = await crm.leads.create({\r\n  full_name: 'Abhay Thakur',\r\n  email: 'abhay@example.com',\r\n  phone: '+919876543210',\r\n  company: 'Acme Inc',\r\n  priority: 'HOT'\r\n});\r\n\r\nconsole.log('Lead created:', lead);\r\n```\r\n\r\n## Features\r\n\r\n### Leads Management\r\n\r\n```javascript\r\n// Create lead\r\nconst lead = await crm.leads.create({\r\n  full_name: 'Abhay Thakur',\r\n  email: 'abhay@example.com',\r\n  phone: '+919876543210',\r\n  company: 'Acme Inc',\r\n  custom_fields: {\r\n    budget: '50L',\r\n    timeline: 'Q1 2025'\r\n  }\r\n});\r\n\r\n// Get leads\r\nconst leads = await crm.leads.get({\r\n  status: 'new',\r\n  priority: 'HOT',\r\n  limit: 50\r\n});\r\n\r\n// Update lead\r\nawait crm.leads.update(leadId, {\r\n  status: 'contacted',\r\n  priority: 'WARM'\r\n});\r\n\r\n// Delete lead\r\nawait crm.leads.delete(leadId);\r\n```\r\n\r\n### AI Intelligence\r\n\r\n```javascript\r\n// Get AI insights for a lead\r\nconst insights = await crm.ai.insights(leadId);\r\nconsole.log('Likelihood to convert:', insights.likelihood_to_convert);\r\nconsole.log('Recommended actions:', insights.recommended_actions);\r\nconsole.log('Best contact time:', insights.best_contact_time);\r\n\r\n// Trigger AI outreach\r\nawait crm.ai.outreach(leadId, {\r\n  channel: 'email',\r\n  context: 'Product demo request'\r\n});\r\n\r\n// Auto-enrich lead data\r\nawait crm.ai.enrich(leadId);\r\n\r\n// Get organization insights\r\nconst orgInsights = await crm.ai.organizationInsights();\r\nconsole.log('Conversion rate:', orgInsights.conversion_rate);\r\n```\r\n\r\n### Campaigns\r\n\r\n```javascript\r\n// Create campaign\r\nconst campaign = await crm.campaigns.create({\r\n  name: 'Product Launch',\r\n  type: 'email',\r\n  target_leads: [1, 2, 3],\r\n  message_template: 'Hi {{name}}, check out our new product!'\r\n});\r\n\r\n// Get campaign stats\r\nconst stats = await crm.campaigns.getStats(campaignId);\r\nconsole.log('Open rate:', stats.open_rate);\r\nconsole.log('Click rate:', stats.click_rate);\r\n```\r\n\r\n### Workflows\r\n\r\n```javascript\r\n// Create workflow\r\nconst workflow = await crm.workflows.create({\r\n  name: 'Hot Lead Follow-up',\r\n  trigger: 'lead_created',\r\n  conditions: {\r\n    priority: 'HOT'\r\n  },\r\n  actions: [\r\n    {\r\n      type: 'send_email',\r\n      template_id: 123\r\n    },\r\n    {\r\n      type: 'create_task',\r\n      assigned_to: 'sales_team'\r\n    }\r\n  ]\r\n});\r\n\r\n// List workflows\r\nconst workflows = await crm.workflows.list();\r\n```\r\n\r\n### Webhooks\r\n\r\n```javascript\r\n// Register webhook\r\nconst webhook = await crm.webhooks.register({\r\n  url: 'https://yourapp.com/webhook',\r\n  events: ['lead.created', 'lead.updated', 'deal.won'],\r\n  secret: 'your_webhook_secret'\r\n});\r\n\r\n// Verify webhook signature (in your webhook handler)\r\napp.post('/webhook', (req, res) => {\r\n  const signature = req.headers['x-prabhcrm-signature'];\r\n  const isValid = crm.webhooks.verifySignature(\r\n    req.body,\r\n    signature,\r\n    'your_webhook_secret'\r\n  );\r\n  \r\n  if (!isValid) {\r\n    return res.status(401).send('Invalid signature');\r\n  }\r\n  \r\n  // Process webhook\r\n  console.log('Event:', req.body.event);\r\n  console.log('Data:', req.body.data);\r\n  \r\n  res.status(200).send('OK');\r\n});\r\n\r\n// List webhooks\r\nconst webhooks = await crm.webhooks.list();\r\n\r\n// Delete webhook\r\nawait crm.webhooks.delete(webhookId);\r\n```\r\n\r\n## Error Handling\r\n\r\n```javascript\r\ntry {\r\n  const lead = await crm.leads.create({\r\n    full_name: 'Abhay Thakur',\r\n    email: 'abhay@example.com'\r\n  });\r\n} catch (error) {\r\n  console.error('Error:', error.message);\r\n}\r\n```\r\n\r\n## Configuration\r\n\r\n```javascript\r\nconst crm = new PrabhCRM({\r\n  apiKey: 'your_api_key',      // Required\r\n  orgId: 'your_org_id',         // Required\r\n  baseURL: 'https://api.prabhcrm.com/v1',  // Optional\r\n  timeout: 30000                // Optional (default: 30s)\r\n});\r\n```\r\n\r\n## Rate Limits\r\n\r\n- Free Plan: 100 API calls/day\r\n- Basic Plan: 1,000 API calls/day\r\n- Pro Plan: 10,000 API calls/day\r\n- Enterprise: Unlimited\r\n\r\n## Support\r\n\r\n- Website: https://prabhcrm.com\r\n- Documentation: https://prabhcrm.com/api-docs\r\n- Email: abhay@prabhcrm.com\r\n- GitHub: https://github.com/prabhcrm/prabhcrm-sdk\r\n\r\n## License\r\n\r\nMIT\r\n\r\n\r\n## New in v1.1.0 🎉\r\n\r\n### LinkedIn Integration\r\n\r\nConnect your LinkedIn account and import connections as leads.\r\n\r\n```javascript\r\n// Check LinkedIn connection status\r\nconst status = await crm.linkedin.getStatus();\r\nconsole.log('Connected:', status.connected);\r\n\r\n// Get OAuth URL to connect LinkedIn\r\nconst { authUrl } = await crm.linkedin.getAuthUrl();\r\n// Redirect user to authUrl to authorize\r\n\r\n// Get LinkedIn connections\r\nconst connections = await crm.linkedin.getConnections({\r\n  limit: 100,\r\n  offset: 0\r\n});\r\nconsole.log('Connections:', connections.connections);\r\n\r\n// Import selected connections as leads\r\nawait crm.linkedin.importConnections([\r\n  {\r\n    name: 'John Doe',\r\n    email: 'john@example.com',\r\n    profileUrl: 'https://linkedin.com/in/johndoe',\r\n    headline: 'CEO at Company',\r\n    company: 'Company Inc'\r\n  }\r\n]);\r\n\r\n// Sync all connections\r\nawait crm.linkedin.syncConnections();\r\n\r\n// Disconnect LinkedIn\r\nawait crm.linkedin.disconnect();\r\n```\r\n\r\n### Video Meetings\r\n\r\nCreate and manage video meetings with built-in video conferencing.\r\n\r\n```javascript\r\n// Create a meeting\r\nconst meeting = await crm.meetings.create({\r\n  title: 'Product Demo',\r\n  description: 'Demo of our new features',\r\n  start_time: '2024-12-10T10:00:00Z',\r\n  duration: 60, // minutes\r\n  participants: ['john@example.com', 'jane@example.com']\r\n});\r\n\r\nconsole.log('Meeting ID:', meeting.id);\r\nconsole.log('Room ID:', meeting.room_id);\r\n\r\n// Get meeting join URL\r\nconst { url, roomId } = await crm.meetings.getJoinUrl(meeting.id);\r\nconsole.log('Join URL:', url);\r\n// Share this URL with participants\r\n\r\n// List meetings\r\nconst meetings = await crm.meetings.list({\r\n  status: 'upcoming',\r\n  from: '2024-12-01T00:00:00Z',\r\n  to: '2024-12-31T23:59:59Z'\r\n});\r\n\r\n// Get meeting details\r\nconst meetingDetails = await crm.meetings.get(meeting.id);\r\n\r\n// Update meeting\r\nawait crm.meetings.update(meeting.id, {\r\n  title: 'Updated Product Demo',\r\n  start_time: '2024-12-10T11:00:00Z'\r\n});\r\n\r\n// Get participants\r\nconst participants = await crm.meetings.getParticipants(meeting.id);\r\n\r\n// Add participant\r\nawait crm.meetings.addParticipant(meeting.id, 'newuser@example.com');\r\n\r\n// Cancel meeting\r\nawait crm.meetings.cancel(meeting.id);\r\n```\r\n\r\n### Calendar Integration\r\n\r\nManage calendar events and sync with external calendars.\r\n\r\n```javascript\r\n// Create calendar event\r\nconst event = await crm.calendar.createEvent({\r\n  title: 'Follow-up Call',\r\n  description: 'Call with lead about pricing',\r\n  start_time: '2024-12-10T14:00:00Z',\r\n  end_time: '2024-12-10T14:30:00Z',\r\n  type: 'meeting' // meeting, task, or reminder\r\n});\r\n\r\n// Get calendar events\r\nconst events = await crm.calendar.getEvents({\r\n  from: '2024-12-01T00:00:00Z',\r\n  to: '2024-12-31T23:59:59Z',\r\n  type: 'meeting'\r\n});\r\n\r\n// Update event\r\nawait crm.calendar.updateEvent(event.id, {\r\n  title: 'Updated Follow-up Call',\r\n  start_time: '2024-12-10T15:00:00Z'\r\n});\r\n\r\n// Delete event\r\nawait crm.calendar.deleteEvent(event.id);\r\n\r\n// Sync with external calendar (Google, Outlook)\r\nawait crm.calendar.syncExternal('google', 'google_auth_token');\r\n```\r\n\r\n## Complete Example\r\n\r\nHere's a complete example showing how to use multiple features together:\r\n\r\n```javascript\r\nimport PrabhCRM from '@abhaythakur/prabhcrm-sdk';\r\n\r\nconst crm = new PrabhCRM({\r\n  apiKey: process.env.PRABHCRM_API_KEY,\r\n  orgId: process.env.PRABHCRM_ORG_ID\r\n});\r\n\r\nasync function main() {\r\n  try {\r\n    // 1. Import LinkedIn connections as leads\r\n    const linkedinStatus = await crm.linkedin.getStatus();\r\n    \r\n    if (linkedinStatus.connected) {\r\n      const connections = await crm.linkedin.getConnections({ limit: 50 });\r\n      \r\n      // Import high-value connections\r\n      const highValueConnections = connections.connections.filter(c => \r\n        c.headline.includes('CEO') || c.headline.includes('Founder')\r\n      );\r\n      \r\n      await crm.linkedin.importConnections(highValueConnections);\r\n      console.log(`Imported ${highValueConnections.length} high-value leads`);\r\n    }\r\n    \r\n    // 2. Get AI insights for new leads\r\n    const leads = await crm.leads.get({ status: 'new', limit: 10 });\r\n    \r\n    for (const lead of leads.data) {\r\n      const insights = await crm.ai.insights(lead.id);\r\n      \r\n      if (insights.likelihood_to_convert > 0.7) {\r\n        // 3. Schedule a meeting for high-potential leads\r\n        const meeting = await crm.meetings.create({\r\n          title: `Demo for ${lead.full_name}`,\r\n          description: 'Product demonstration',\r\n          start_time: new Date(Date.now() + 24 * 60 * 60 * 1000).toISOString(),\r\n          duration: 30,\r\n          participants: [lead.email]\r\n        });\r\n        \r\n        // 4. Create calendar event\r\n        await crm.calendar.createEvent({\r\n          title: `Prep for ${lead.full_name} demo`,\r\n          start_time: new Date(Date.now() + 23 * 60 * 60 * 1000).toISOString(),\r\n          end_time: new Date(Date.now() + 23.5 * 60 * 60 * 1000).toISOString(),\r\n          type: 'task'\r\n        });\r\n        \r\n        console.log(`Scheduled meeting for ${lead.full_name}`);\r\n      }\r\n    }\r\n    \r\n    // 5. Set up webhook for real-time updates\r\n    await crm.webhooks.register({\r\n      url: 'https://yourapp.com/webhook',\r\n      events: ['lead.created', 'meeting.scheduled', 'deal.won'],\r\n      secret: process.env.WEBHOOK_SECRET\r\n    });\r\n    \r\n    console.log('✅ Automation setup complete!');\r\n    \r\n  } catch (error) {\r\n    console.error('Error:', error.message);\r\n  }\r\n}\r\n\r\nmain();\r\n```\r\n\r\n## TypeScript Support\r\n\r\nThe SDK includes TypeScript definitions for better IDE support:\r\n\r\n```typescript\r\nimport PrabhCRM from '@abhaythakur/prabhcrm-sdk';\r\n\r\ninterface LeadData {\r\n  full_name: string;\r\n  email: string;\r\n  phone?: string;\r\n  company?: string;\r\n  priority?: 'HOT' | 'WARM' | 'COLD';\r\n}\r\n\r\nconst crm = new PrabhCRM({\r\n  apiKey: process.env.PRABHCRM_API_KEY!,\r\n  orgId: process.env.PRABHCRM_ORG_ID!\r\n});\r\n\r\nconst lead: LeadData = {\r\n  full_name: 'John Doe',\r\n  email: 'john@example.com',\r\n  priority: 'HOT'\r\n};\r\n\r\nawait crm.leads.create(lead);\r\n```\r\n\r\n## Migration from v1.0.0\r\n\r\nIf you're upgrading from v1.0.0, no breaking changes! All existing code will continue to work. Simply install the latest version:\r\n\r\n```bash\r\nnpm install @abhaythakur/prabhcrm-sdk@latest\r\n```\r\n\r\nNew features are additive and backward compatible.\r\n\r\n## Changelog\r\n\r\n### v1.1.0 (December 2024)\r\n- ✅ Added LinkedIn integration API\r\n- ✅ Added video meetings API\r\n- ✅ Added calendar integration API\r\n- ✅ Enhanced error handling\r\n- ✅ Improved TypeScript support\r\n- ✅ Added comprehensive examples\r\n\r\n### v1.0.0 (November 2024)\r\n- Initial release\r\n- Leads management\r\n- AI intelligence\r\n- Campaigns\r\n- Workflows\r\n- Webhooks\r\n\r\n","readmeFilename":"README.md"}