> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.conversive.ai/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.conversive.ai/_mcp/server.

# Salesforce SDK FAQ

> Frequently asked questions about supported objects, sender records, balance checks, MMS behavior, and implementation patterns for the Conversive Salesforce SDK.

#### Which Salesforce records can be used with the messaging APIs?

The examples use `Contact` records, but the API pattern indicates that any Salesforce record can be used as long as the record IDs are passed in and the referenced phone fields are available.

#### Can I send bulk messages?

Yes. `sendBulkSMS()` accepts multiple Salesforce record IDs in the same request, which makes it suitable for outbound operational and campaign-style messaging.

#### Can MMS be sent without text?

Yes. `sendBulkMMS()` supports media-only messaging by passing an empty string for the message body.

#### How do I check available credits?

Use `getConversiveBalance()` to retrieve `SMSCredits` and `MMSCredits`.

#### When should I run environment setup and account creation?

Run `upsertEnvironmentSettings()` and `createConversiveAccount()` during installation or onboarding, not during every message-send transaction.

#### Do I need sender records before sending messages?

Yes. Valid sender records should exist in `Sender_Id__c` before you run outbound messaging APIs.

#### What phone fields should I pass to the APIs?

Use trusted, populated, and normalized fields such as `MobilePhone` and `Phone`.

#### How should I handle SDK errors in production?

Wrap SDK calls in `try-catch`, log both the exception message and stack trace, validate input data before the call, and inspect the response wrapper before continuing business logic.