Skip to content
zehavibarak edited this page Dec 27, 2023 · 2 revisions

BizDoc extension for Monday enable interacting with BizDoc components embedded into Monday.com user interface:

Setup

  1. Install Nuget:
dotnet add package BizDoc.Core.Monday
  1. Create Monday app.

Add me.read, users.read, teams.read scopes. Set redirect uri to server.

Use ngrok for development.

  1. Configure service in startup.cs
  builder.Services.AddBizDoc(...).
    AddMonday(options => {
        options.ApiKey = "api-key-here"; 
        options.BoardId = (context) => ...;
        options.GroupId = (context) => ...;
        options.ClientId = "client-id-here";
        options.ClientSecret = "client-secret-here";    
      }).
      UseIdentityProvider();
  ...
  app.UseBizDoc().
    UseMonday();

Replace the client-id, client-secret and api-key above with those of your Monday app.

If you wish to implement a custom Identity Provider, replace the UseIdentityProvider() with AddBizDoc().UseIdentityProvider<MyProvider>() and implement your provider as MyProvider.

  1. Install Angular library.
npm i @bizdoc/monday

in app.module, add:

import { MondayModule } from '@bizdoc/monday';

 MondayModule.forRoot({
   clientId: 'client-id',
   components: [...]
})

Register your implementation components in forRoot() components as you would in BizDocModule.

Replace the implementation of app.component with the following:

<bizdoc-monday></bizdoc-monday>

Style in angular.json:

  "styles": [
    "~@bizdoc/monday/assets/themes/light.min.css",
    "src/main.scss"
  ]

Monday App Features

Map Monday app features to BizDoc urls.

Url Purpose
/board Folders and documents
/cube/{cube-name}/v/{view-name} Cube
/item BizDoc document of the active Monday item *
/report/{report-name} Report
/widget/{widget-name} Widget
  • Item must have a bizdoc_id column that holds the document id.
  • Items created by MondayService are set with BizDoc id.

MondayService

Utilize MondayService service to create an Item in Monday.

public class MyForm : FormBase<MyFormModel> {
  private readonly MondayService _service;
  private readonly IDocumentContext _context;
  public MyForm(MondayService service, IDocumentContext context) {
    _service = service;
    _context = context;
  }
  public override Task CreateAsync(MyFormModel model) {
    _service.CreateItemAsync(_context.Document.Id, model.Subject);
  }
}

Call ChangeItemStatusAsync() and UpdateItemAsync() to to change state or add an update.

Release Notes

Angular npm, Flutter pub.dev and Nuget packages.

Clone this wiki locally