Skip to main content

Enterprise Identity Plugin Lists And Actions

DingTalk, Feishu, and WeCom share the list operations described here. This page explains columns, buttons, and dialogs. Provider-specific dynamic fields are covered in DingTalk, Feishu, and WeCom. See Enterprise Identity Plugins for permissions, synchronization policies, and the overall setup sequence.

Find A List​

Open an installed plugin under Integration → Apps. Its left menu contains:

MenuContents
App InformationVersion, runtime status, declared permissions, callback URL, and sign-in entry; use Edit App for provider credentials
Organization Mapping → OrganizationsExternal root organizations and their bindings to existing Soln organizations
Organization Mapping → DepartmentsExternal departments, parent relationships, and bindings to Soln departments
Organization Mapping → UsersExternal members, departments, and bindings to Soln members
Message Push → Push ConfigurationBusiness app notification switches and template scope; DingTalk also has AgentId
Message Push → Message LogsDelivery records, recipients, results, and retry for the current plugin source

Left-menu search finds menus rather than members or messages. Mapping and notification entries require permission to manage app installations. Enable a disabled plugin before fetching its directory or managing push settings.

Organization, Department, And User Lists​

These lists contain external directory snapshots and bindings. Cells do not edit provider profiles, and rows have no action to create or delete external members. Change external profiles on the provider, then fetch again.

Toolbar​

ControlUsage and effect
SearchEnter text and submit or press Enter. Searches external names, IDs, parent/department names, and raw returned field values. Clearing restores all rows. It does not search bound Soln names or translated status labels
Download iconExports all rows of the current object type matching the submitted search, beyond the current page. Excel includes fixed columns, dynamic fields, and bindings, without action buttons
Sync Organization StructureOpens organization, department, and member field mappings for this plugin. Every directory list opens the same shared synchronization settings
Automatic BindingSets matching rules for the current object type; an organization rule is not a department or member rule
Fetch DirectoryCalls the provider and updates all three directory collections for this plugin. Successful fetches apply saved automatic binding rules and run structure synchronization if enabled
Refresh iconReloads the saved current list without initiating a provider fetch. Use it to see data already updated in the background

Hover over Fetch Directory to see the last fetch time, rather than an individual profile's modification time. Before the first successful fetch, the page asks you to fetch and disables automatic binding and structure synchronization. Controls can also be disabled during operations, when there are no export rows, or while the plugin is disabled.

Directory lists default to 20 rows per page, with 50 and 100 available. Search covers all snapshot rows, not only the page. If a background update changes the snapshot during export, refresh and export again.

Fixed Columns​

ColumnListsMeaning
Row numberAllPosition in the query results, not a provider ID
External nameAllOrganization, department, or user name returned by the provider
External IDAllStable object identifier used by the plugin; distinct from a Soln UUID
Parent departmentDepartmentsProvider parent name, or its ID when the snapshot has no name
DepartmentsUsersProvider assignments, potentially multiple; these do not assign the user to Soln departments
Binding statusAllUnbound, bound, or bound object unavailable, explained below
Soln organization / department / memberCorresponding listBound internal object; member email is included when available
Binding methodAllManual or automatic matching. Bindings added through WeCom sign-in also appear as automatic
Binding statusMeaning and next step
UnboundNo internal relationship. Click Bind or set an automatic rule for this object type
BoundA binding exists and the internal object is available. This does not prove profile synchronization, message delivery, or sign-in
Bound object unavailableThe relationship is retained but the internal object is unavailable, for example disabled or deleted. Review its state and adjust the mapping if needed; it is not an available notification recipient

Dynamic Fields And Details​

Provider attributes follow the fixed columns: email, employee number, avatar URL, activation status, or custom properties. Missing fields are not invented; an entire column or individual values can be absent. Check permissions, source profiles, visibility, and member consent.

Known provider fields have translated names, Boolean/status values, and formatted timestamps. Unknown custom fields retain their paths and values. Arrays and objects appear as structured text. Click View for the right-hand drawer to inspect long values. Empty values show -. The drawer is read-only, contains fixed and dynamic fields, and has no save or copy buttons.

An external activation flag does not mean the Soln member is enabled. An external administrator flag does not grant Soln administrator permissions.

Row Actions​

ActionStepsResult
ViewInspect the ID, assignment, binding, and properties, then close the drawerNo changes
BindReview the read-only external name and ID, select a Soln object, and click Save BindingCreates or changes the relationship; an existing target is preselected
UnbindAvailable only for a bound row; review both objects in the confirmation dialogRemoves the relationship while retaining both objects and profiles

Target selectors use the same organization, department, and member field controls as business forms. Bind organizations to organizations, departments to departments, and users to members. Binding alone does not move a member. A target already bound to another external object of the same type reports a conflict rather than being reassigned automatically.

After unbinding, a saved rule that still uniquely matches may recreate the relationship after the next successful fetch. With structure synchronization enabled, an unbound object may instead be created during a subsequent synchronization. Unbinding is not a permanent exclusion switch.

Automatic Binding Dialog​

Field or actionBehavior
External object fieldChoose an actual snapshot field; options show the translated label and raw path, such as email
Soln object fieldChoose the comparison field; options show the internal label and code, such as so_email
Exact comparisonTrims surrounding whitespace and compares case-sensitively
Case-insensitive comparisonTrims surrounding whitespace and ignores case, useful for email
Save Automatic MatchingSaves the rule and runs it immediately; the dialog stays open to show statistics
CloseDiscards unsaved dialog changes
Header information iconExplains background refresh, adding only missing bindings, and preserving existing relationships

Counts cover all external snapshot objects of the current type, irrespective of list search or pagination. Internal candidates must be available and enabled.

CountMeaning
TotalExternal objects scanned
Newly boundRelationships added during this run
PreservedExternal objects with an existing binding, even when comparison fields changed
EmptyUnbound external objects with an empty or noncomparable source value
UnmatchedNonempty source with no available internal candidate; empty internal fields or disabled objects can cause this
ConflictsDuplicate external values, multiple internal candidates, or an internal candidate already bound elsewhere

Duplicate comparison values on either side cannot be resolved automatically; correct the profiles or bind manually.

Example: in Users, select external email → internal so_email → case-insensitive matching. A unique Alice@example.com matches alice@example.com. Multiple internal objects sharing the comparison value are not resolved by choosing one arbitrarily. Name-based organization and department rules have the same duplicate-name limitation.

Structure Synchronization Dialog​

This configures which external field writes to which internal field, rather than selecting organization or department objects again. It manages all three object types together.

ControlUsage
Add MappingAdds a row. Select an external field on the left before an internal field of the same object type on the right
External sourceGrouped by organizations, departments, and users; searchable. Recheck the target after changing the object type
Internal targetShows labels and codes such as a department's name (so_name). Disabled until a source is selected; other types, nonwritable fields, and occupied targets are unavailable
Auto Map → By NameGenerates candidates by field label for review
Auto Map → By CodeMatches codes while handling the internal so_ prefix; ambiguous targets are skipped
Row delete iconRemoves a field mapping, without deleting an object or its identifier binding
External Department DeletedChoose keep, disable, or delete; the information icon explains full-scope and dependency requirements
Save MappingsSaves fields and the deletion policy while preserving the existing sync state. Initially disabled configurations remain disabled; already enabled configurations use the saved changes on subsequent runs
Enable Automatic SyncValidates, saves the current rules, and enables synchronization. A separate save is unnecessary; another valid enabled source reports a conflict
Disable Automatic SyncDisables using the saved configuration, without saving pending field or deletion-policy edits
Cancel / CloseDiscards unsaved edits without changing the existing background sync state

The latest synchronization result appears in the dialog. Expand View Sync Failures for object type, name, external ID, and error code, up to 100 failures. Pending activation counts imported members awaiting administrator activation. Deletion unconfirmed means the conditions for confirming missing external departments were not met. Correct required fields, email, parent bindings, or references and allow the next run to process them.

Incomplete mappings or duplicate internal targets of the same type cannot be saved. Only configured object types are synchronized, but their hierarchy and assignments still require parent bindings. Configuring member fields alone does not remove organization and department dependencies. See Structure Synchronization for policy details.

Message Push: Configuration List​

Each row configures this provider plugin's forwarding for one business application. Approval configurations under DingTalk and Feishu are independent. Enabling one provider's permissions does not configure the others.

Columns, Filters, And Row Actions​

Control or columnMeaning
+ beside the left Push Configuration menuSelect Push Configuration first, then click its adjacent add icon
Date rangeFilters configuration creation time, unrestricted by default; editing an old row does not change its creation time
SearchSubmit an application name/code or message template name/code
Refresh iconReloads settings and available applications/templates
Business application / App codeThe business app producing messages and its stable code, rather than a provider App ID or AgentId
StatusThis row's enabled/disabled switch, separate from plugin runtime status
Message templatesAllowed templates; empty selection displays All Messages
DingTalk AgentIdDingTalk only; must belong to the enterprise internal app identified by the plugin Client ID
Created / UpdatedConfiguration creation and latest save times
EditChanges template scope and DingTalk AgentId. The business application of an existing row cannot change
Enable / DisableSwitches forwarding directly in the row; the edit dialog has no enable switch
DeleteConfirms removal, stops queued delivery, and retains logs. Add the configuration again to restore it

The list supports pagination without bulk enable/disable, bulk delete, or Excel download controls.

Create And Edit Dialogs​

  1. Select a Business Application. Options are active apps with an enabled message-inbox source, excluding Message Center and Luna. Already configured applications cannot be selected again when creating
  2. Enter AgentId for DingTalk. Feishu and WeCom do not show this field; WeCom uses the installation configuration
  3. Search, select multiple, or clear Message Templates. Options are currently active built-in and custom templates supporting inbox delivery, with up to 100 selected templates
  4. Hover the information icons beside the application, AgentId, or dialog title for scope and provider requirements
  5. Save. A new configuration is disabled until you Enable its row; editing preserves its existing switch state

Empty selection allows all messages for that application, including custom messages without a template. Once templates are selected, only matching template messages qualify; a message without a template does not match. The setting controls future forwarding without backfilling old notifications.

The template selector lists available tenant templates rather than filtering them to the selected application. Select templates actually used by that app's messages. Selecting a template used by another app does not pull the other app's messages into this configuration.

Message Push: Logs​

Find A Record​

Logs default to the last seven days, filtered by creation time. Expand or clear the range for older records, then select an application and status and submit search. Filters combine; changes return to page one.

Search matches title, summary, Soln member ID, external user ID, topic, or error code, not a member's display name. Check IDs in the user binding details. Page sizes are 20, 50, or 100.

While open, the page reloads approximately every five seconds; the refresh icon reloads immediately. This differs from the approximately five-minute background directory refresh. Refreshing logs neither resends messages nor fetches the directory.

Columns​

ColumnMeaning
CreatedWhen the delivery record was created, rather than when the member read it
TitleNotification title
ApplicationBusiness application producing the message
StatusPending, sending, accepted, retry, failed, skipped, or uncertain
Soln member IDRecipient of the inbox reminder; investigate different recipients individually
TopicBusiness topic identifier for diagnosis, not a template scope users must type manually
AttemptsSending attempts for this record, not views by the member
ResultStatus or error explanation. A record without an error still shows a status explanation such as acceptance
ViewOpens the delivery details drawer

One event can notify several members or providers. Inspect records for each recipient under the relevant plugin; one success does not establish success for the others.

Drawer And Retry​

SectionFields and purpose
Basic informationLog ID, created/updated times, status, and attempts identify this delivery
MessageBusiness app/name/code, topic, inbox item ID, title, and summary identify the original reminder
RecipientSoln member ID and external user ID; the latter may be - if not yet resolved
ResultProvider message/task ID, result explanation, and raw error code distinguish provider errors from local skips

The top-right Retry appears only for failed or skipped records. It is enabled when the record is less than 24 hours old and the current app configuration is enabled and allows the message's template. Otherwise, hover the disabled button for its explanation. Retry queues another delivery; it does not promise immediate arrival or rerun the original approval/business operation. Uncertain records have no retry action here.

Missing Logs Versus Failed Logs​

SituationChecks
New reminder has no logConfirm it entered the correct application's message center, then check this plugin's app configuration, enable time, templates, and list filters. Messages outside configured forwarding scope may have no delivery record
Member unbound or unavailableInspect Organization Mapping → Users, binding state, external ID, enabled internal member, and current directory availability
Provider rejectedInspect the raw error and follow provider setup checks for credentials, permissions, and visibility; for WeCom check the actual outbound IP
Accepted but not seenCheck the external recipient and app entry; accepted is not delivered/read, and DingTalk may still process an asynchronous task
UncertainCheck actual provider messages or available sending results before creating another business event and duplicate notification

Worked Example​

To send approval reminders to one existing member:

  1. Grant directory and personal messaging permissions, then Fetch Directory from Soln's Users list
  2. Search the external email or ID, View the identity, then Bind an existing Soln member
  3. Confirm Bound. Structure synchronization is unnecessary for this use case
  4. Open Push Configuration, click its left-menu +, select the application producing approval messages and the desired templates; enter AgentId for DingTalk
  5. Save, Enable the row, and create a new approval reminder
  6. Open Message Logs, filter by application/time, search the recipient ID, inspect status/content/external recipient, and confirm the actual provider message

For hundreds of members, configure automatic member matching and review conflicts and blanks. WeCom can supplement bindings through authorized sign-in when directory email is restricted. Configure and enable structure sync only when external data should update internal objects.