Salesforce
Project Connectors/CRM/SalesforceDataSource/. Class SalesforceDataSource extends WebAPIDataSource. Namespace TheTechIdea.Beep.Connectors.Salesforce; DTOs in …Salesforce.Models.
Registration
DataSourceType:Salesforce- Category:
DatasourceCategory.Connector
Entities
Fixed SObject lists are registered as entities (e.g. Account, Contact, Lead, Opportunity, Case, …). See KnownEntities in SalesforceDataSource.cs — extend the list for custom objects as needed.
Source & IDataSource
Implementation: Connectors/CRM/SalesforceDataSource/SalesforceDataSource.cs — class SalesforceDataSource : WebAPIDataSource. Reads use SOQL via the REST query resource and SObject routes; writes use sobjects/<Type> POST/PATCH. Entity names match KnownEntities in source (Account, Contact, Lead, Opportunity, Case, User, …). Generic paging and GetEntity/GetEntityAsync follow IDataSource.
Command methods (CommandAttribute)
Below, Name is omitted in attributes where the source only sets ObjectType / misc; tooling typically exposes the C# method name.
Command Name (if any) | Method | Returns | ObjectType |
|---|---|---|---|
| — | GetAccounts(AppFilter filter) | Task<IEnumerable<Account>> | Accounts |
| — | GetContacts(AppFilter filter) | Task<IEnumerable<Contact>> | Contacts |
| — | GetLeads(AppFilter filter) | Task<IEnumerable<Lead>> | Leads |
| — | GetOpportunities(AppFilter filter) | Task<IEnumerable<Opportunity>> | Opportunities |
| — | GetUsers(AppFilter filter) | Task<IEnumerable<User>> | Users |
| — | CreateAccountAsync(Account account) | Task<IEnumerable<Account>> | Account |
| — | UpdateAccountAsync(string accountId, Account account) | Task<IEnumerable<Account>> | Account |
| — | CreateContactAsync(Contact contact) | Task<IEnumerable<Contact>> | Contact |
| — | UpdateContactAsync(string contactId, Contact contact) | Task<IEnumerable<Contact>> | Contact |
| — | CreateLeadAsync(Lead lead) | Task<IEnumerable<Lead>> | Lead |
| — | UpdateLeadAsync(string leadId, Lead lead) | Task<IEnumerable<Lead>> | Lead |
| — | CreateOpportunityAsync(Opportunity opportunity) | Task<IEnumerable<Opportunity>> | Opportunity |
| — | UpdateOpportunityAsync(string opportunityId, Opportunity opportunity) | Task<IEnumerable<Opportunity>> | Opportunity |
| — | CreateCaseAsync(Case caseRecord) | Task<IEnumerable<Case>> | Case |
| — | UpdateCaseAsync(string caseId, Case caseRecord) | Task<IEnumerable<Case>> | Case |
Model types
Namespace TheTechIdea.Beep.Connectors.Salesforce.Models (see Models.cs in the project): SalesforceEntityBase, Account, Contact, Lead, Opportunity, Case, User, SFTask, QueryResult<T>, SalesforceEntityRegistry, and related DTOs used for REST deserialization.
Connection & auth
Uses WebAPIConnectionProperties. OAuth / bearer tokens and instance URL are typically supplied via connection configuration (REST composite and SOQL-style operations depend on a valid session).