JAI CRM
Home Release notes API keys you could create but never use

API keys you could create but never use

Three faults in one screen, each of which quietly made the next one impossible to notice.

14 days free · nothing to install · your data exports whenever you want

SellingBuyingDeliveringAccounting

The key was created and never shown

An API key is displayed exactly once, at the moment it is made, because only a hash of it is kept afterwards. The screen asked the server for a new key and then read the wrong field of the reply, so the box that shows it never appeared. The key was created correctly every time. It simply could not be obtained, and it could not be recovered later.

What the list showed instead was the key prefix, under a column headed “Key”. That is there to identify a key in the list, not to be used, but it looked like the only key-shaped thing on the page, so it was what people copied, and it was refused everywhere they pasted it.

And its data scope could not be set

Every permission carries a data scope: their own records, their team’s, or everything in the business. On the roles and users screens that is a dropdown beside each permission. On the API keys screen it was never drawn (an option the screen simply did not pass through), so every key ever issued took the default, “their own records”.

For a person that is a sensible default. For a key it means records belonging to whoever created it, which for an integration is usually none at all. So a key would authenticate, every permission on it would look right, and every list it asked for came back empty, with nothing on the screen to explain why and no control to change it.

The dropdown is there now, with a line explaining what scope means for a key rather than for a person. The default is deliberately still the narrow one. Widening access quietly because most keys want it widened is how a key ends up reading more than it was meant to.

Two smaller ones in the same screen

Expiry did nothing. The date typed into the Expires field was sent in a shape the server does not accept, and was discarded without an error, so every key was created as never-expiring, whatever you chose.

Revoking looked like it had failed. Revoking is deliberately soft: the row stays, so the prefix can still be recognised in an audit trail long after. But a revoked key was displayed exactly like a live one, still offering a Revoke button, so nothing visibly happened. There is a status column now (active, expired or revoked), and the button goes once there is nothing left to revoke.

Does this affect anything existing?

Any key you created before today is still scoped to “their own records”, because that is what it was saved with: the scope was not editable, so it cannot have been anything else. If an integration of yours reads less than you expect, or nothing at all, that is why: issue a new key with the scope set, and revoke the old one.

Keys whose secret you never managed to copy are unusable and always were. Revoke them; nothing else is affected, and no data has changed.

Creating API keys remains an administrator-only action, as it was.

Pricing

Start with what you need. Grow into the rest.

Per user, per month. Every plan carries the whole product’s foundations (custom fields, roles, reports, documents and notifications) and differs only in how many modules are switched on. Change plan whenever you like; nothing is re-entered and nothing is lost.

CRM + Sales Documents

Leads, customers and deals, with quotations and GST invoices

₹149 / user / month

Pay annually
+ 18% GST: ₹175.82 / user / month incl. GST

Start 14-day trial
  • Leads, customers, companies and deals
  • Quotations, sales orders and GST invoices
  • Your own mailbox, with replies filed against the record
  • Reports, dashboards and exports
  • Documents, folders and sharing
  • Exhibitions: visiting card scanning, and what each fair earned
  • Integrations: IndiaMART, Just Dial, Tally, Google Drive and Dropbox
7 modules switched on
  • CRM
  • Sales documents
  • Settings
  • Reports & analytics
  • Documents
  • Notifications
  • Exhibitions

1 GB storage per workspace (organisation)

CRM + Sales Documents + Subscriptions + Warranty

For a business that bills on a cycle and stands behind what it sells

₹299 / user / month

Pay annually
+ 18% GST: ₹352.82 / user / month incl. GST

Start 14-day trial
  • Everything in CRM + Sales Documents
  • Recurring billing, plans, add-ons and coupons
  • Warranty registration and claims
  • Items and stock, which warranty is held against
  • Recurring revenue reporting
  • Integrations: IndiaMART, Just Dial, Shopify, Tally, Google Drive and Dropbox
10 modules switched on
  • CRM
  • Sales documents
  • Subscriptions
  • Warranty
  • Inventory
  • Settings
  • Reports & analytics
  • Documents
  • Notifications
  • Exhibitions

1 GB storage per workspace (organisation)

Only want this one module?

Individual modules are sold on their own alongside the plans. See every module’s price.

What about storage?

A single module includes 1 GB of storage per workspace (organisation) and Full Suite includes 5 GB per workspace (organisation): documents, attachments, file versions and photographs, counted together for everyone in it, not per user. Add more at any time in tiers, or move to Full Suite and take the larger allowance with it. Nothing is deleted if you run close; uploads are refused with a reason, and what you already have stays exactly where it is.

Annual or monthly?

Both. Annual works out cheaper per month and is charged once at the start; monthly costs a little more and can be stopped at the end of any cycle. The card shows the per-user-per-month figure on both, so the two are comparable at a glance rather than by arithmetic.

See it with your own data

Start free, import a spreadsheet of your customers, and raise a real GST invoice in the first ten minutes. No card, no sales call.