CreatioConnector 1.0.0
dotnet add package CreatioConnector --version 1.0.0
NuGet\Install-Package CreatioConnector -Version 1.0.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="CreatioConnector" Version="1.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="CreatioConnector" Version="1.0.0" />
<PackageReference Include="CreatioConnector" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add CreatioConnector --version 1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: CreatioConnector, 1.0.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package CreatioConnector@1.0.0
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=CreatioConnector&version=1.0.0
#tool nuget:?package=CreatioConnector&version=1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
CreatioConnector
A .NET 8 NuGet library for integrating with Creatio CRM/BPM via OData 4.
- ✅ Cookie-based authentication (ASPXAUTH + BPMCSRF)
- ✅ Full CRUD: SELECT, INSERT, UPDATE (PATCH), DELETE
- ✅ Auto session refresh + 401 retry
- ✅ SQL Server history logging via EF Core
- ✅ Typed options (
IOptions<CreatioOptions>) - ✅ Single-line DI registration
Installation
dotnet add package CreatioConnector
Quick Start
1. appsettings.json
{
"ConnectionStrings": {
"DefaultConnection": "Server=.;Database=MyDb;Trusted_Connection=True;"
},
"Creatio": {
"BaseUrl": "https://your-instance.creatio.com",
"Username": "admin",
"Password": "your-password",
"SessionLifetimeMinutes": 20,
"HttpTimeoutSeconds": 30
}
}
2. Program.cs
using CreatioConnector.Extensions;
builder.Services.AddCreatioConnector(builder.Configuration);
var app = builder.Build();
// Auto-migrate CreatioIntegrationLogs table
app.Services.UseCreatioConnectorMigrations();
3. Inject and Use
public class ContactService
{
private readonly ICreatioConnectorService _creatio;
public ContactService(ICreatioConnectorService creatio)
=> _creatio = creatio;
public async Task<List<Dictionary<string, object?>>> GetContactsAsync()
{
var result = await _creatio.SelectAsync(new CreatioSelectRequest
{
EntityName = "Contact",
Filter = "contains(Name, 'Ahmed')",
Select = "Id,Name,Email,Phone",
OrderBy = "Name asc",
Top = 50,
IncludeCount = true
});
if (!result.IsSuccess)
throw new Exception(result.ErrorMessage);
return result.Records; // List<Dictionary<string, object?>>
}
public async Task<string?> CreateContactAsync(string name, string email)
{
var result = await _creatio.InsertAsync(new CreatioInsertRequest
{
EntityName = "Contact",
Fields = new() { ["Name"] = name, ["Email"] = email }
});
return result.RecordId; // Guid string
}
public async Task UpdatePhoneAsync(string recordId, string phone)
{
await _creatio.UpdateAsync(new CreatioUpdateRequest
{
EntityName = "Contact",
RecordId = recordId,
Fields = new() { ["Phone"] = phone }
});
}
public async Task DeleteContactAsync(string recordId)
{
await _creatio.DeleteAsync(new CreatioDeleteRequest
{
EntityName = "Contact",
RecordId = recordId
});
}
}
Use Your Existing DbContext (optional)
If you don't want a second DbContext, merge the table into yours:
// In your AppDbContext.OnModelCreating:
CreatioDbContextConfiguration.Configure(modelBuilder);
Then register without EF (pass your own repo):
services.AddScoped<ICreatioLogRepository, MyCustomCreatioLogRepository>();
Query Integration Logs
public class LogsController : ControllerBase
{
private readonly ICreatioLogService _logs;
public LogsController(ICreatioLogService logs) => _logs = logs;
[HttpGet("failed")]
public async Task<IActionResult> Failed([FromQuery] int page = 1)
=> Ok(await _logs.GetFailedLogsAsync(pageSize: 50, page: page));
}
Configuration Reference
| Key | Default | Description |
|---|---|---|
Creatio:BaseUrl |
required | Your Creatio instance URL |
Creatio:Username |
required | Login username |
Creatio:Password |
required | Login password |
Creatio:SessionLifetimeMinutes |
20 |
Cookie session lifetime |
Creatio:HttpTimeoutSeconds |
30 |
Per-request timeout |
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net8.0
- Microsoft.EntityFrameworkCore.Relational (>= 8.0.0)
- Microsoft.EntityFrameworkCore.SqlServer (>= 8.0.0)
- Microsoft.Extensions.Configuration.Abstractions (>= 8.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.0)
- Microsoft.Extensions.Http (>= 8.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 8.0.0)
- Microsoft.Extensions.Options.DataAnnotations (>= 8.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 86 | 9/9/2026 |