Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

To active the KPIs & Alerting feature /wiki/spaces/EN/pages/98897520 on your app, all the configuration steps described below must completed. 



Table of Contents
maxLevel2
minLevel2


1. Configuring MnoHub!

  1. **The app must be connected to a KPI enabled tenant. A KPI enabled tenant with the following metadata attribute:

    Code Block
    languageruby
    tenant[:metadata][:kpi_enabled] = true

    ** Note this switch is only relevant to v1 dashboard KPIs (v2 widget KPIs are unaffected by this).

2. Configuring Connec!

  1. A Connec! Webhook needs to be created, this can be done by /wiki/spaces/DEV/pages/90439768 or by directly creating one via the Rails Console . Below is an example of the Connec Webhook object, for the Impac! KPIs & Alerting feature. (the object name is 'Entity::Webhook')

    1. It is important that

    this
    1. the Webhook object is configured with the correct tenant / master tenant credentials (as api_key & api_secret)

    ,
    1. and the relevant Impac! API endpoint

    , and
    1. .

    2. The Webhook must be subscribed to receive

    'Journals'. Code Block
    languageruby
    { api_key: 'AN_API_KEY',
    1. "Journals", but currently the recommended entity subscriptions are "Accounts", "Journals", "Company", "Invoices", "Contacts" (pluralized entity names).

    2. The Webhook must have detailed_notifications set to true
    3. Setting the Webhook period to 0 will make webhooks run in real-time, which can be handy for development so you don't have to wait 60 seconds for notifications to batch, and be sent. 
Code Block
# An example of a valid webhook configured for Impac! KPIs & Alerting
<Entity::Webhook _id: 5a980040d2ef70cccdc94b89, name: "Impac v2", endpoint: "http://localhost:4000/api/v2/maestrano/finance/notifications", api_key: "tenant_key", api_secret: 
'AN_API_SECRET', endpoint: 'ENDPOINT_URL', name: 'NAME', subscribed_entities: ['ARRAY_OF_ENTITIES'], detailed_notifications: false }3. Configuring Impac!
"tenant_secret", detailed_notifications: true, subscribed_entities: ["Accounts", "Journals", "Company", "Invoices", "Contacts"], period: 0, max_size: 60, timeout: 5>


3. Configuring Impac!

  1. Update your Bolt with the relevant subscribed_entities 

    Code Block
    b = Bolt.find(an_id)
    # Snake-case & pluralised connec! entity names
    b.subscribed_entities = ["accounts", "journals", "companies", "invoices", "contacts"]


  2. Pusher (websockets service) & Sparkpost (email delivery service) keys are configured in Impac! API (config/application.yml):

    Code Block
    SPARKPOST_API_KEY: 'CHANGEME'
    PUSHER_APP_ID: 'CHANGEME'
    PUSHER_KEY: 'CHANGEME'
    PUSHER_SECRET: 'CHANGEME'


  3. Add Maestrano Master Tenant (SystemIdentity) credentials to Impac! API (config/application.yml). This is used as the basic authentication when Impac! queries MnoHub to retrieve KPIs.

    Code Block
    ROOT_KEY: YOUR_ROOT_KEY
    ROOT_SECRET: YOUR_ROOT_SECRET


4. Configuring the Frontend (Express / MnoEnterprise Angular)

  1. Impac! Angular needs to be provided with a Pusher Key to connect to the Pusher websockets service from the client. There are 2 ways to do this:
    1. MnoEnterprise Angular now provides this automatically to Impac! Angular by passing an environment variable configured in Nex! or the MnoEnterprise Express application.

      Code Block
      languageruby
      impac_pusher_key: PUSHER_KEY


    2. Manually by configuring the Impac! Angular ImpacLinkingSvc

      Code Block
      languagejs
      // Link required and optional data in on sweep.
      ImpacLinkingSvc.linkData({ user: ..., organizations: ..., pusher_key: 'KEY' })
      // OR:
      ImpacLinkingSvc.linkOptionalData({pusher_key: 'KEY'})



  2. Configured Impac! Angular's Theming Provider, enabling the feature.

    Code Block
    languagejs
    options = {
      	dhbKpisConfig:
        	enableKpis: true
    	alertsConfig:
    		enableAlerts: true
    }
    
    ImpacTheming.configure(options)