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" />
                    
Directory.Packages.props
<PackageReference Include="CreatioConnector" />
                    
Project file
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
                    
#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
                    
Install as a Cake Addin
#tool nuget:?package=CreatioConnector&version=1.0.0
                    
Install as a Cake Tool

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 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.

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