Showing results for 
Search instead for 
Do you mean 

ACT! Plugin development FAQ

Nickel Elite Contributor
Posts: 937
Country: USA

ACT! Plugin development FAQ

What is an ACT! Plugin?
  • Any .NET assembly that implements ACT’s plugin interface(s) is technically an ACT! plugin
  • Plugins typically add or enhance functionality in the windows or web editions of ACT!
  • Plugins can be added to ACT! without the need for any changes to ACT! assemblies themselves
  • You already have what you need to begin development of plugins when you install ACT!
  • The only limitation of what can be done is your imagination, technical abilities, and anything we specifically restricted for security or stability purposes.

Where do plugins go?
  • Windows: <C:\Program Files\ACT\Act for Windows\Plugins>
  • (Note: C:\ is simply the drive installed, could be d:\, e:\, etc )

    Web: <C:\Program Files\ACT\Act for Web\APFW\Plugins>
    (Note: C:\ is simply the drive installed ON THE SERVER, could be d:\, e:\, etc )

Can I write one plugin that works for ACT! Windows and Web?
  •  YES – But it must be deployed in different locations as stated above *AND* the interfaces it implements are slightly different.
 How can I tell if a plugin failed too load?
  • It failed if the name of the assembly is in this Look here: 
"C:\Users\bmowka\AppData\Roaming\ACT\ACT For Windows\DependentDlls.xml“ (Where OS username is bmowka)
Also, if you have log level=3 your log file will NOT get a message "[Plugins] Plugin {your plugin name here} loaded"
 If my plugin failed to load how can I correct this?
  • Easiest method is to delete the dependentdlls.xml file and launch ACT! again (for ACT! web, IIS restart required) 
Where do I put any dependent assemblies that my Plugin assembly requires to be available?
  • You can put them in the plugins folder or the Global Assembly Cache 
 Will my plugin work on the next version of ACT!?
  • Yes, with the following exceptions.
    • A method you are dependent on has been changed/moved/removed.
    • We try to avoid this at all costs, but there are circumstances where we have had to do this – Ex: The redesign of the opportunities functionality made some methods unnecessary and had no logical way to be implemented in updated design/implementation.
    • Also, we try and give one year warning if we plan on removing methods by marking the method [obsolete].
How does ACT! know what assemblies are plugins? 
  • It simply loops through all the assembly files in the Plugins directory and probes the assembly to see if it implements the following interface:
    • Act.UI.IPlugin (For windows)
    • Act.Web.Framework.IWebPlugin (For web)
 When do plugins get loaded in ACT!?
  • They get loaded early in startup – BEFORE – any logon has begun

When do they get unloaded?
  • Only during the shutdown of ACT! (Not when you logoff a database)
How do I get access to the UI and Framework in a Plugin?
  • Windows
    • When a Plugin is loaded it ACT! Will immediately call the Plugin’s interface method “OnLoad”
    • void OnLoad(ActApplication actApp);
      • The object actApp can access both UI and Framework
  • Web 
    • When a Plugin is loaded ACT! Will immediately call the Plugin’s interface method “Init”
    • void Init(ACTSessionManager session);
      • The object session has direct access to the Framework (UI can be done directly with various ACTSessionManager functions.)  
        • Example: Adding a tab to contact detail view… (You write ServeCustomTab) session.LayoutTabs.AddCustomTabProvider(LayoutType.Contacts, new Act.Web.Framework.CustomTabProvider(this.ServeCustomTab));
Copper Contributor
Posts: 14
Country: USA

Re: ACT! Plugin development FAQ

I believe that you need to be using  a .net framework 3.5 or older (I could not get Act! 2011 to recignize my plugin until I changed from .net framework 4.0 to .net framework 3.5

New Member
Posts: 2
Country: Israel

Re: ACT! Plugin development FAQ



I have imported the right DLLs I guess and my code looks like this:


Imports System.Windows.Forms
Imports Act.UI

Public Class Class1
    Implements Act.UI.IPlugin

    Sub OnLoad(ActApp As ActApplication)

    End Sub
End Class


But I always get the error of:


Class1 must implement 'OnLoad(actApp As ActApplication)' for interface Act.UI.IPlugin


What have I done wrong ?



Posts: 1,163
Country: USA

Re: ACT! Plugin development FAQ

OnLoad is a required method if your class is implementing Act.UI.Plugin, it's also a good place to instantiate Before and AfterLogOn. Included in the SDK documenation is a sample plugin that you can reference.

Matthew Wood
Act! SDK Support
Community Moderator
Astute Commentator
Posts: 197
Country: United States

Re: ACT! Plugin development FAQ



Thank you for the insight on the Plugin. Now, once the plugin is loaded, do you have examples on how to access a form's elements i.e. the labels? What if you want to trap the phone label click event? Or even change the phone label to be a button?



New Member
Posts: 1
Country: France

Re: ACT! Plugin development FAQ


je suis développeur français, je voudrais développer de nouveaux modules en utilisant les apis Act.

Je ne sais pas comment faire, pourriez vous m'aider sv?


New Member
Posts: 1
Country: Indonesia

Re: ACT! Plugin development FAQ Situs dengarkan dan download lagu mp3 secara gratis. Kami membantumu Download Lagu Mp3 Z terbaik 2019 tinggi.

Download Lagu Mp3