iTop Extensions

Portal for Business Partner

m( m( m( Combodo's customers only 8-) 8-) 8-)

Portal for Business Partner
Specific portal to allow Business Partner to access ticket assigned to their team
ITSM Designer
PHP 8.1

You have outsourced some of your IT support to external companies and you don't want to allow them a full access to your iTop. Then this extension is for you, as it provides through a dedicated Portal, Ticket Management limited to the Tickets assigned to a team of the user.


This extension brings a separate Portal designed for Business Partners to provide them a mean to work only on Tickets which are assigned to their team(s).

  • They can assign their tickets to agent, set them in pending, resolve & close them.
  • They can reassign their tickets to any team defined in the customer delivery model.

Revision history

Date Version Description
2023-09-12 1.1.0 * N°6681 - Hide role attribute in linkedset Contact/Ticket (3.1 compatibility)
* N°5014 - Add model.itop-portal-business-partner.php for robustness
2020-03-11 1.0.0 * Add compatibility with iTop 2.7+
* Fix user profile picture not shown
* Add navigation rules for a better user experience
2020-01-10 0.3.2 * Compatible with iTop Community
* Compatible with Incident in full ITIL mode
2019-11-28 0.3.1 Allow standard profiles to be combined with Business Portal user
2019-09-19 0.3.0 * Add a submit button always visible to forms
* Allow tickets to be exported
* Show count number on bricks tabs
* Add “My Tickets” brick
* Add french translation
2018-11-27 0.2.1 Fix URLs generated to access objects in this portal (notifications, …)
2018-06-26 0.1.0 First version

Migration from a 0.2.x to 0.3.x requires to change the delta XML, as multiple enhancements were integrated in version 0.3.0 of the extension, and will conflict at XML compilation.


  • The Business Partner portal does not display information about the caller such as email, phone number, location,…
  • Partner users will also have access to the standard User Portal, which may or may not make sense for them.
  • Business Partner users will not have access to the Console
  • Clever users guessing the url in the portal, can see all Services and Service Subcategories information. If this information is critical for you and should not be disclosed, customize the XML to add simple Forms for those classes with just the name field.

* With iTop version lower than 2.7, as soon as a partner assign a Ticket out their own team(s), they get a weird message telling them that they can't see the Ticket anymore


This extension is compatible with Simple Ticketing and ITIL Compliant Tickets but at least one of the 2 must be activated on your iTop.


Use the Standard installation process for this extension.


This extension does not offer any configuration parameters.


  • This extension brings a new profile named Business partner user
  • Only users with that profile will have access to the Partner portal.
  • Those users will only see Tickets assigned to a team which they are part of.
SELECT Ticket AS Ti 
  JOIN Team AS t ON 
  JOIN lnkPersonToTeam AS l ON 
  WHERE l.person_id = :current_contact_id AND Ti.finalclass IN ('UserRequest', 'Incident')
  • They can reassign the Ticket to any Teams part of the DeliveryModel, then any agent within those teams.

Then Partner users will be proposed with the following Portal:

They can list the Tickets

They can Assign a Ticket

But if they assign it to a team to which they do not belong, they will get this nasty message, which they should ignore. (This is fixed in iTop 2.7)

Questions & Answers

Question: How to provide in a notification a link to an object in the Business Portal?
Answer: Here is the placeholder to use:


Question: How to notifies the agent, instead of the caller, on a Ticket Log update in the iTop Business Portal ?
Answer: Trigger (when updated from the portal) and Action to notify the caller

SELECT UserRequest WHERE :this->agent_id=:current_contact_id

The Trigger (when log is updated) cannot be used as it is not triggered when in the Portal

Question: How to notify the right contact? when a Ticket is updated in the Portal, as it could be done by the user himself, the agent, a colleague of the caller, with power user profile for eg. or a colleague of the agent, if a Portal for Business Partner is used?
Answer: Trigger (when updated from the portal) and Action to notify everyone: client and agent

SELECT UserRequest 
  WHERE :this->agent_id != :current_contact_id 
  AND :this->caller_id != :current_contact_id

Question: My partner user also access the User Portal. How to prevent them from having assigned button in User Portal?
Answer: Customize the User Portal to deny to user having the Business partner user profile the right to apply those stimuli in this portal.

module-design@itop-portal / classes
  <class id="Ticket">
    <lifecycle _delta="define>
        <stimulus id="ev_assign">
            <denied_profile id="Business partner user"/>

Expend this logic to all the stimuli they are allowed to apply as defined in the Business partner user profile: ev_assign, ev_reassign, ev_pending, ev_resolve and ev_close.

Question: My partner user can access the User Portal and the private log has been added to the Portal for business partner. How can I trigger different notification depending on what log was updated and in which Portal?
Answer: Use Trigger (on object update), checking who did the change rather than in which portal/console, as this information is not available.
The placeholder :current_contact_id returns the associated to the connected user.

Note that in the above example, it's triggered not only if the agent update the private log, but if any member of the team to which the ticket is dispatched, does update it.

With iTop 2.7 and above, Trigger (on object update) allow you to select the Contexts in which the trigger applies, so can be limited to a particular portal

You cannot use Trigger (when updated from the portal) because it does not allow you to differentiate between different portals, nor between updated fields.

Question: compatibility with iTop 2.7
Answer: it requires this, until the extension is migrated to Symfony

itop-design / portals
   <portal id="itop-portal-business-partner">
      <url _delta="redefine">
extensions/itop-portal-business-partner.txt · Last modified: 2023/09/13 08:19 (external edit)
Back to top
Contact us