# FDC3 Technical Reference

Canonical page: https://www.adaptabletools.com/docs/technical-reference-fdc3

## FDC3 Options

| Property | Type | Description | Default |
| --- | --- | --- | --- |
| [actionColumnDefaultConfiguration](https://www.adaptabletools.com/docs/reference/fdc3options.md#actioncolumndefaultconfiguration) | [`ActionColumnDefaultConfiguration`](https://www.adaptabletools.com/docs/reference/actioncolumndefaultconfiguration.md) | Configures the default FDC3 Actions column | columnId: &#39;fdc3ActionColumn&#39;, headerName: &#39;FDC3 Actions&#39;, width: 200, resizable: true, movable: false, rowScope:  ExcludeDataRows: false, ExcludeGroupRows: true, ExcludeSummaryRows: true, ExcludeTotalRows: true |
| [contexts](https://www.adaptabletools.com/docs/reference/fdc3options.md#contexts) | [`Fdc3ContextOptions`](https://www.adaptabletools.com/docs/reference/fdc3contextoptions.md) | Configures FDC3 standard Contexts that AdapTable will listen for and broadcast |   |
| [enableLogging](https://www.adaptabletools.com/docs/reference/fdc3options.md#enablelogging) | `boolean` | Enable logging message exchanges to Console | false |
| [gridDataContextMapping](https://www.adaptabletools.com/docs/reference/fdc3options.md#griddatacontextmapping) | [`GridDataContextMapping`](https://www.adaptabletools.com/docs/reference/griddatacontextmapping.md) | Maps Context Type to AdapTable Grid Data |   |
| [intents](https://www.adaptabletools.com/docs/reference/fdc3options.md#intents) | [`Fdc3IntentOptions`](https://www.adaptabletools.com/docs/reference/fdc3intentoptions.md) | Configures FDC3 standard Intents that AdapTable will listen for and raise |   |
| [resolveContextData](https://www.adaptabletools.com/docs/reference/fdc3options.md#resolvecontextdata) | `(context: `[`ResolveContextDataContext`](https://www.adaptabletools.com/docs/reference/resolvecontextdatacontext.md)`) => Context` | Builds Context Data (useful for postprocessing Context Data mapped from Grid data) |   |
| [uiControlsDefaultConfiguration](https://www.adaptabletools.com/docs/reference/fdc3options.md#uicontrolsdefaultconfiguration) | `\{ contexts?: \{ [contextName in StandardContextType]?: `[`UIControlConfig`](https://www.adaptabletools.com/docs/reference/uicontrolconfig.md)`; \}; intents?: \{ [intentName in StandardIntent]?: `[`UIControlConfig`](https://www.adaptabletools.com/docs/reference/uicontrolconfig.md)`; \}; \}` | Customises FDC3 UI Controls | contexts: , intents: |

`actionColumnDefaultConfiguration` is an [`ActionColumnDefaultConfiguration`](https://www.adaptabletools.com/docs/reference/actioncolumndefaultconfiguration.md):

| Property | Type | Description | Default |
| --- | --- | --- | --- |
| [columnId](https://www.adaptabletools.com/docs/reference/actioncolumndefaultconfiguration.md#columnid) | `string` | Column Id | &#39;fdc3ActionColumn&#39; |
| [headerName](https://www.adaptabletools.com/docs/reference/actioncolumndefaultconfiguration.md#headername) | `string` | Column Header | &#39;FDC3 Actions&#39; |
| [movable](https://www.adaptabletools.com/docs/reference/actioncolumndefaultconfiguration.md#movable) | `boolean` | If Column is movable | false |
| [resizable](https://www.adaptabletools.com/docs/reference/actioncolumndefaultconfiguration.md#resizable) | `boolean` | If Column is resizable | true |
| [rowScope](https://www.adaptabletools.com/docs/reference/actioncolumndefaultconfiguration.md#rowscope) | [`RowScope`](https://www.adaptabletools.com/docs/reference/rowscope.md) | Which rows button appears in | data rows only |
| [width](https://www.adaptabletools.com/docs/reference/actioncolumndefaultconfiguration.md#width) | `number` | Column Width in pixels | 200 |

`gridDataContextMapping` is a [`GridDataContextMapping`](https://www.adaptabletools.com/docs/reference/griddatacontextmapping.md):

| Property | Type | Description |
| --- | --- | --- |
| ["fdc3.action"](https://www.adaptabletools.com/docs/reference/griddatacontextmapping.md#"fdc3.action") | `Fdc3ContentMapping<Action>` | Maps an `fdc3.action` context. Each field is a `_colId.` or `_field.` reference. |
| ["fdc3.chart"](https://www.adaptabletools.com/docs/reference/griddatacontextmapping.md#"fdc3.chart") | `Fdc3ContentMapping<Chart>` | Maps an `fdc3.chart` context. Each field is a `_colId.` or `_field.` reference. |
| ["fdc3.chat.initSettings"](https://www.adaptabletools.com/docs/reference/griddatacontextmapping.md#"fdc3.chat.initsettings") | `Fdc3ContentMapping<ChatInitSettings>` | Maps an `fdc3.chat.initSettings` context. Each field is a `_colId.` or `_field.` reference. |
| ["fdc3.chat.message"](https://www.adaptabletools.com/docs/reference/griddatacontextmapping.md#"fdc3.chat.message") | `Fdc3ContentMapping<ChatMessage>` | Maps an `fdc3.chat.message` context. Each field is a `_colId.` or `_field.` reference. |
| ["fdc3.chat.room"](https://www.adaptabletools.com/docs/reference/griddatacontextmapping.md#"fdc3.chat.room") | `Fdc3ContentMapping<ChatRoom>` | Maps an `fdc3.chat.room` context. Each field is a `_colId.` or `_field.` reference. |
| ["fdc3.chat.searchCriteria"](https://www.adaptabletools.com/docs/reference/griddatacontextmapping.md#"fdc3.chat.searchcriteria") | `Fdc3ContentMapping<ChatSearchCriteria>` | Maps an `fdc3.chat.searchCriteria` context. Each field is a `_colId.` or `_field.` reference. |
| ["fdc3.contact"](https://www.adaptabletools.com/docs/reference/griddatacontextmapping.md#"fdc3.contact") | `Fdc3ContentMapping<Contact>` | Maps an `fdc3.contact` context. Each field is a `_colId.` or `_field.` reference. |
| ["fdc3.contactList"](https://www.adaptabletools.com/docs/reference/griddatacontextmapping.md#"fdc3.contactlist") | `Fdc3ContentMapping<ContactList>` | Maps an `fdc3.contactList` context. Each field is a `_colId.` or `_field.` reference. |
| ["fdc3.country"](https://www.adaptabletools.com/docs/reference/griddatacontextmapping.md#"fdc3.country") | `Fdc3ContentMapping<Country>` | Maps an `fdc3.country` context. Each field is a `_colId.` or `_field.` reference. |
| ["fdc3.currency"](https://www.adaptabletools.com/docs/reference/griddatacontextmapping.md#"fdc3.currency") | `Fdc3ContentMapping<Currency>` | Maps an `fdc3.currency` context. Each field is a `_colId.` or `_field.` reference. |
| ["fdc3.email"](https://www.adaptabletools.com/docs/reference/griddatacontextmapping.md#"fdc3.email") | `Fdc3ContentMapping<Email>` | Maps an `fdc3.email` context. Each field is a `_colId.` or `_field.` reference. |
| ["fdc3.instrument"](https://www.adaptabletools.com/docs/reference/griddatacontextmapping.md#"fdc3.instrument") | `Fdc3ContentMapping<Instrument>` | Maps an `fdc3.instrument` context. Each field is a `_colId.` or `_field.` reference. |
| ["fdc3.instrumentList"](https://www.adaptabletools.com/docs/reference/griddatacontextmapping.md#"fdc3.instrumentlist") | `Fdc3ContentMapping<InstrumentList>` | Maps an `fdc3.instrumentList` context. Each field is a `_colId.` or `_field.` reference. |
| ["fdc3.interaction"](https://www.adaptabletools.com/docs/reference/griddatacontextmapping.md#"fdc3.interaction") | `Fdc3ContentMapping<Interaction>` | Maps an `fdc3.interaction` context. Each field is a `_colId.` or `_field.` reference. |
| ["fdc3.message"](https://www.adaptabletools.com/docs/reference/griddatacontextmapping.md#"fdc3.message") | `Fdc3ContentMapping<Message>` | Maps an `fdc3.message` context. Each field is a `_colId.` or `_field.` reference. |
| ["fdc3.organization"](https://www.adaptabletools.com/docs/reference/griddatacontextmapping.md#"fdc3.organization") | `Fdc3ContentMapping<Organization>` | Maps an `fdc3.organization` context. Each field is a `_colId.` or `_field.` reference. |
| ["fdc3.portfolio"](https://www.adaptabletools.com/docs/reference/griddatacontextmapping.md#"fdc3.portfolio") | `Fdc3ContentMapping<Portfolio>` | Maps an `fdc3.portfolio` context. Each field is a `_colId.` or `_field.` reference. |
| ["fdc3.position"](https://www.adaptabletools.com/docs/reference/griddatacontextmapping.md#"fdc3.position") | `Fdc3ContentMapping<Position>` | Maps an `fdc3.position` context. Each field is a `_colId.` or `_field.` reference. |
| ["fdc3.timerange"](https://www.adaptabletools.com/docs/reference/griddatacontextmapping.md#"fdc3.timerange") | `Fdc3ContentMapping<TimeRange>` | Maps an `fdc3.timerange` context. Each field is a `_colId.` or `_field.` reference. |
| ["fdc3.transactionResult"](https://www.adaptabletools.com/docs/reference/griddatacontextmapping.md#"fdc3.transactionresult") | `Fdc3ContentMapping<TransactionResult>` | Maps an `fdc3.transactionResult` context. Each field is a `_colId.` or `_field.` reference. |
| ["fdc3.valuation"](https://www.adaptabletools.com/docs/reference/griddatacontextmapping.md#"fdc3.valuation") | `Fdc3ContentMapping<Valuation>` | Maps an `fdc3.valuation` context. Each field is a `_colId.` or `_field.` reference. |
| [custom](https://www.adaptabletools.com/docs/reference/griddatacontextmapping.md#custom) | `\{ [key: string]: Fdc3ContentMapping<Context>; \}` | Column mapping for a context type that is not one of the standard names. The key is the context type. |

`resolveContextData` receives a [`ResolveContextDataContext`](https://www.adaptabletools.com/docs/reference/resolvecontextdatacontext.md):

| Property | Type | Description |
| --- | --- | --- |
| [contextMappedFromGridData](https://www.adaptabletools.com/docs/reference/resolvecontextdatacontext.md#contextmappedfromgriddata) | `Context` | FDC3 Context Data which has been mapped from the grid data based on the given configuration in `gridDataContextMapping` |
| [contextType](https://www.adaptabletools.com/docs/reference/resolvecontextdatacontext.md#contexttype) | `ContextType` | FDC3 Context Type |
| [primaryKeyValue](https://www.adaptabletools.com/docs/reference/resolvecontextdatacontext.md#primarykeyvalue) | `any` | Primary Key value of row |
| [rowData](https://www.adaptabletools.com/docs/reference/resolvecontextdatacontext.md#rowdata) | `any` | Row data which is the source of the context data |
| [rowNode](https://www.adaptabletools.com/docs/reference/resolvecontextdatacontext.md#rownode) | `IRowNode` | Row Node which is source of the context data |
| [adaptableContext](https://www.adaptabletools.com/docs/reference/resolvecontextdatacontext.md#adaptablecontext) | `any` | Custom application Context provided in `AdaptableOptions.adaptableContext` |

`uiControlsDefaultConfiguration` is a [`UIControlConfig`](https://www.adaptabletools.com/docs/reference/uicontrolconfig.md):

| Property | Type | Description |
| --- | --- | --- |
| [icon](https://www.adaptabletools.com/docs/reference/uicontrolconfig.md#icon) | [`AdaptableIcon`](https://www.adaptabletools.com/docs/reference/adaptableicon.md) | Icon to display |

### FDC3 Intent Options

The [`FDC3 Intent Options`](https://www.adaptabletools.com/docs/reference/fdc3intentoptions.md) property handles FDC3 Intents behaviour:

| Property | Type | Description |
| --- | --- | --- |
| [handleIntent](https://www.adaptabletools.com/docs/reference/fdc3intentoptions.md#handleintent) | `(context: `[`HandleFdc3IntentContext`](https://www.adaptabletools.com/docs/reference/handlefdc3intentcontext.md)`) => Promise<IntentResult> \| void` | Handles incoming Intents (standard and custom) |
| [handleIntentResolution](https://www.adaptabletools.com/docs/reference/fdc3intentoptions.md#handleintentresolution) | `(context: `[`HandleFdc3IntentResolutionContext`](https://www.adaptabletools.com/docs/reference/handlefdc3intentresolutioncontext.md)`) => Promise<void>` | Handles the IntentResolution that a raised Intent might return |
| [listensFor](https://www.adaptabletools.com/docs/reference/fdc3intentoptions.md#listensfor) | `Intent[]` | Subscribe to given standard Intent(s) |
| [raises](https://www.adaptabletools.com/docs/reference/fdc3intentoptions.md#raises) | [`RaiseIntentConfiguration`](https://www.adaptabletools.com/docs/reference/raiseintentconfiguration.md) | Raises given standard Intent(s) on various Grid Actions |

`raises` is a [`RaiseIntentConfiguration`](https://www.adaptabletools.com/docs/reference/raiseintentconfiguration.md):

| Property | Type | Description |
| --- | --- | --- |
| [custom](https://www.adaptabletools.com/docs/reference/raiseintentconfiguration.md#custom) | `\{ [customIntent: string]: `[`RaiseIntentConfig`](https://www.adaptabletools.com/docs/reference/raiseintentconfig.md)`[]; \}` | When to raise an intent that is not one of the standard names. The key is the intent name. |
| [StartCall](https://www.adaptabletools.com/docs/reference/raiseintentconfiguration.md#startcall) | [`RaiseIntentConfig`](https://www.adaptabletools.com/docs/reference/raiseintentconfig.md)`[]` | Grid actions that raise the standard `StartCall` intent. |
| [StartChat](https://www.adaptabletools.com/docs/reference/raiseintentconfiguration.md#startchat) | [`RaiseIntentConfig`](https://www.adaptabletools.com/docs/reference/raiseintentconfig.md)`[]` | Grid actions that raise the standard `StartChat` intent. |
| [StartEmail](https://www.adaptabletools.com/docs/reference/raiseintentconfiguration.md#startemail) | [`RaiseIntentConfig`](https://www.adaptabletools.com/docs/reference/raiseintentconfig.md)`[]` | Grid actions that raise the standard `StartEmail` intent. |
| [ViewAnalysis](https://www.adaptabletools.com/docs/reference/raiseintentconfiguration.md#viewanalysis) | [`RaiseIntentConfig`](https://www.adaptabletools.com/docs/reference/raiseintentconfig.md)`[]` | Grid actions that raise the standard `ViewAnalysis` intent. |
| [ViewChart](https://www.adaptabletools.com/docs/reference/raiseintentconfiguration.md#viewchart) | [`RaiseIntentConfig`](https://www.adaptabletools.com/docs/reference/raiseintentconfig.md)`[]` | Grid actions that raise the standard `ViewChart` intent. |
| [ViewContact](https://www.adaptabletools.com/docs/reference/raiseintentconfiguration.md#viewcontact) | [`RaiseIntentConfig`](https://www.adaptabletools.com/docs/reference/raiseintentconfig.md)`[]` | Grid actions that raise the standard `ViewContact` intent. |
| [ViewHoldings](https://www.adaptabletools.com/docs/reference/raiseintentconfiguration.md#viewholdings) | [`RaiseIntentConfig`](https://www.adaptabletools.com/docs/reference/raiseintentconfig.md)`[]` | Grid actions that raise the standard `ViewHoldings` intent. |
| [ViewInstrument](https://www.adaptabletools.com/docs/reference/raiseintentconfiguration.md#viewinstrument) | [`RaiseIntentConfig`](https://www.adaptabletools.com/docs/reference/raiseintentconfig.md)`[]` | Grid actions that raise the standard `ViewInstrument` intent. |
| [ViewInteractions](https://www.adaptabletools.com/docs/reference/raiseintentconfiguration.md#viewinteractions) | [`RaiseIntentConfig`](https://www.adaptabletools.com/docs/reference/raiseintentconfig.md)`[]` | Grid actions that raise the standard `ViewInteractions` intent. |
| [ViewNews](https://www.adaptabletools.com/docs/reference/raiseintentconfiguration.md#viewnews) | [`RaiseIntentConfig`](https://www.adaptabletools.com/docs/reference/raiseintentconfig.md)`[]` | Grid actions that raise the standard `ViewNews` intent. |
| [ViewOrders](https://www.adaptabletools.com/docs/reference/raiseintentconfiguration.md#vieworders) | [`RaiseIntentConfig`](https://www.adaptabletools.com/docs/reference/raiseintentconfig.md)`[]` | Grid actions that raise the standard `ViewOrders` intent. |
| [ViewProfile](https://www.adaptabletools.com/docs/reference/raiseintentconfiguration.md#viewprofile) | [`RaiseIntentConfig`](https://www.adaptabletools.com/docs/reference/raiseintentconfig.md)`[]` | Grid actions that raise the standard `ViewProfile` intent. |
| [ViewQuote](https://www.adaptabletools.com/docs/reference/raiseintentconfiguration.md#viewquote) | [`RaiseIntentConfig`](https://www.adaptabletools.com/docs/reference/raiseintentconfig.md)`[]` | Grid actions that raise the standard `ViewQuote` intent. |
| [ViewResearch](https://www.adaptabletools.com/docs/reference/raiseintentconfiguration.md#viewresearch) | [`RaiseIntentConfig`](https://www.adaptabletools.com/docs/reference/raiseintentconfig.md)`[]` | Grid actions that raise the standard `ViewResearch` intent. |

`handleIntent` receives a [`HandleFdc3IntentContext`](https://www.adaptabletools.com/docs/reference/handlefdc3intentcontext.md):

| Property | Type | Description |
| --- | --- | --- |
| [intent](https://www.adaptabletools.com/docs/reference/handlefdc3intentcontext.md#intent) | `Intent` | The FDC3 Intent |
| [adaptableContext](https://www.adaptabletools.com/docs/reference/handlefdc3intentcontext.md#adaptablecontext) | `any` | Custom application Context provided in `AdaptableOptions.adaptableContext` |

`handleIntentResolution` receives a [`HandleFdc3IntentResolutionContext`](https://www.adaptabletools.com/docs/reference/handlefdc3intentresolutioncontext.md):

| Property | Type | Description |
| --- | --- | --- |
| [intentResolution](https://www.adaptabletools.com/docs/reference/handlefdc3intentresolutioncontext.md#intentresolution) | `IntentResolution` | The FDC3 Intent Resolution |
| [adaptableContext](https://www.adaptabletools.com/docs/reference/handlefdc3intentresolutioncontext.md#adaptablecontext) | `any` | Custom application Context provided in `AdaptableOptions.adaptableContext` |

### FDC3 Context Options

The [`FDC3 Context Options`](https://www.adaptabletools.com/docs/reference/fdc3contextoptions.md) property handles FDC3 Context behaviour:

| Property | Type | Description |
| --- | --- | --- |
| [broadcasts](https://www.adaptabletools.com/docs/reference/fdc3contextoptions.md#broadcasts) | [`BroadcastConfiguration`](https://www.adaptabletools.com/docs/reference/broadcastconfiguration.md) | Broadcasts given standard Context(s) on various Grid Actions |
| [handleContext](https://www.adaptabletools.com/docs/reference/fdc3contextoptions.md#handlecontext) | `(context: `[`HandleFdc3Context`](https://www.adaptabletools.com/docs/reference/handlefdc3context.md)`) => void` | Handles incoming Contexts (standard and custom) |
| [listensFor](https://www.adaptabletools.com/docs/reference/fdc3contextoptions.md#listensfor) | `ContextType[]` | Subscribe to given standard Context(s) |

`broadcasts` is a [`BroadcastConfiguration`](https://www.adaptabletools.com/docs/reference/broadcastconfiguration.md):

| Property | Type | Description |
| --- | --- | --- |
| ["fdc3.chart"](https://www.adaptabletools.com/docs/reference/broadcastconfiguration.md#"fdc3.chart") | [`BroadcastConfig`](https://www.adaptabletools.com/docs/reference/broadcastconfig.md) | When to broadcast an `fdc3.chart` context. |
| ["fdc3.chat.initSettings"](https://www.adaptabletools.com/docs/reference/broadcastconfiguration.md#"fdc3.chat.initsettings") | [`BroadcastConfig`](https://www.adaptabletools.com/docs/reference/broadcastconfig.md) | When to broadcast an `fdc3.chat.initSettings` context. |
| ["fdc3.contact"](https://www.adaptabletools.com/docs/reference/broadcastconfiguration.md#"fdc3.contact") | [`BroadcastConfig`](https://www.adaptabletools.com/docs/reference/broadcastconfig.md) | When to broadcast an `fdc3.contact` context. |
| ["fdc3.contactList"](https://www.adaptabletools.com/docs/reference/broadcastconfiguration.md#"fdc3.contactlist") | [`BroadcastConfig`](https://www.adaptabletools.com/docs/reference/broadcastconfig.md) | When to broadcast an `fdc3.contactList` context. |
| ["fdc3.country"](https://www.adaptabletools.com/docs/reference/broadcastconfiguration.md#"fdc3.country") | [`BroadcastConfig`](https://www.adaptabletools.com/docs/reference/broadcastconfig.md) | When to broadcast an `fdc3.country` context. |
| ["fdc3.currency"](https://www.adaptabletools.com/docs/reference/broadcastconfiguration.md#"fdc3.currency") | [`BroadcastConfig`](https://www.adaptabletools.com/docs/reference/broadcastconfig.md) | When to broadcast an `fdc3.currency` context. |
| ["fdc3.email"](https://www.adaptabletools.com/docs/reference/broadcastconfiguration.md#"fdc3.email") | [`BroadcastConfig`](https://www.adaptabletools.com/docs/reference/broadcastconfig.md) | When to broadcast an `fdc3.email` context. |
| ["fdc3.instrument"](https://www.adaptabletools.com/docs/reference/broadcastconfiguration.md#"fdc3.instrument") | [`BroadcastConfig`](https://www.adaptabletools.com/docs/reference/broadcastconfig.md) | When to broadcast an `fdc3.instrument` context. |
| ["fdc3.instrumentList"](https://www.adaptabletools.com/docs/reference/broadcastconfiguration.md#"fdc3.instrumentlist") | [`BroadcastConfig`](https://www.adaptabletools.com/docs/reference/broadcastconfig.md) | When to broadcast an `fdc3.instrumentList` context. |
| ["fdc3.organization"](https://www.adaptabletools.com/docs/reference/broadcastconfiguration.md#"fdc3.organization") | [`BroadcastConfig`](https://www.adaptabletools.com/docs/reference/broadcastconfig.md) | When to broadcast an `fdc3.organization` context. |
| ["fdc3.portfolio"](https://www.adaptabletools.com/docs/reference/broadcastconfiguration.md#"fdc3.portfolio") | [`BroadcastConfig`](https://www.adaptabletools.com/docs/reference/broadcastconfig.md) | When to broadcast an `fdc3.portfolio` context. |
| ["fdc3.position"](https://www.adaptabletools.com/docs/reference/broadcastconfiguration.md#"fdc3.position") | [`BroadcastConfig`](https://www.adaptabletools.com/docs/reference/broadcastconfig.md) | When to broadcast an `fdc3.position` context. |
| ["fdc3.timerange"](https://www.adaptabletools.com/docs/reference/broadcastconfiguration.md#"fdc3.timerange") | [`BroadcastConfig`](https://www.adaptabletools.com/docs/reference/broadcastconfig.md) | When to broadcast an `fdc3.timerange` context. |
| ["fdc3.valuation"](https://www.adaptabletools.com/docs/reference/broadcastconfiguration.md#"fdc3.valuation") | [`BroadcastConfig`](https://www.adaptabletools.com/docs/reference/broadcastconfig.md) | When to broadcast an `fdc3.valuation` context. |
| [custom](https://www.adaptabletools.com/docs/reference/broadcastconfiguration.md#custom) | `\{ [customContext: string]: `[`BroadcastConfig`](https://www.adaptabletools.com/docs/reference/broadcastconfig.md)`; \}` | When to broadcast a context type that is not one of the standard names. The key is the context type. |

`handleContext` receives a [`HandleFdc3Context`](https://www.adaptabletools.com/docs/reference/handlefdc3context.md):

| Property | Type | Description |
| --- | --- | --- |
| [context](https://www.adaptabletools.com/docs/reference/handlefdc3context.md#context) | `Context` | The FDC3 Context |
| [metadata](https://www.adaptabletools.com/docs/reference/handlefdc3context.md#metadata) | `ContextMetadata` | The FDC3 Context Metadata related to the context |
| [adaptableContext](https://www.adaptabletools.com/docs/reference/handlefdc3context.md#adaptablecontext) | `any` | Custom application Context provided in `AdaptableOptions.adaptableContext` |

-------------

## FDC3 API

| Method | Returns | Description |
| --- | --- | --- |
| [broadcastFromPrimaryKey(primaryKeyValue, contextType, channel)](https://www.adaptabletools.com/docs/reference/fdc3api.md#broadcastfromprimarykey) | `Promise<void> \| undefined` | Broadcasts the given Context from the given Row Node with the given Primary Key Value |
| [broadcastFromRow(rowNode, contextType, channel)](https://www.adaptabletools.com/docs/reference/fdc3api.md#broadcastfromrow) | `Promise<void>` | Broadcasts the given Context from the given Row Node |
| [buildContextDataForPrimaryKey(contextType, primaryKeyValue)](https://www.adaptabletools.com/docs/reference/fdc3api.md#buildcontextdataforprimarykey) | `Context \| undefined` | Builds FDC3 Context Data based on the given Context Type and the Row Node with the given Primary Key Value |
| [buildContextDataFromRow(contextType, rowNode)](https://www.adaptabletools.com/docs/reference/fdc3api.md#buildcontextdatafromrow) | `Context` | Builds FDC3 Context Data based on the given Context Type and Row Node |
| [getContextLabel(contextType)](https://www.adaptabletools.com/docs/reference/fdc3api.md#getcontextlabel) | `string` | Returns the human-friendly label for the given Context Type |
| [getDesktopAgent()](https://www.adaptabletools.com/docs/reference/fdc3api.md#getdesktopagent) | `DesktopAgent` | Returns the FDC3 Desktop Agent |
| [isStandardContextType(contextType)](https://www.adaptabletools.com/docs/reference/fdc3api.md#isstandardcontexttype) | `boolean` | Whether this context type is one of the FDC3 standard types. |
| [isStandardIntentType(intentType)](https://www.adaptabletools.com/docs/reference/fdc3api.md#isstandardintenttype) | `boolean` | Whether this intent is one of the FDC3 standard intents. |
| [raiseIntentForContextFromPrimaryKey(primaryKeyValue, contextType, appIdentifier)](https://www.adaptabletools.com/docs/reference/fdc3api.md#raiseintentforcontextfromprimarykey) | `Promise<IntentResolution> \| undefined` | Finds and raises an Intent based on the given Context from the given Row Node with the given Primary Key Value |
| [raiseIntentForContextFromRow(rowNode, contextType, appIdentifier)](https://www.adaptabletools.com/docs/reference/fdc3api.md#raiseintentforcontextfromrow) | `Promise<IntentResolution>` | Finds and raises an Intent based on the given Context from the given Row Node |
| [raiseIntentFromPrimaryKey(primaryKeyValue, intent, contextType, appIdentifier)](https://www.adaptabletools.com/docs/reference/fdc3api.md#raiseintentfromprimarykey) | `Promise<IntentResolution> \| undefined` | Raises an Intent with the given Context from the given Row Node with the given Primary Key Value |
| [raiseIntentFromRow(rowNode, intent, contextType, appIdentifier)](https://www.adaptabletools.com/docs/reference/fdc3api.md#raiseintentfromrow) | `Promise<IntentResolution>` | Raises an Intent with the given Context from the given Row Node |

----------------

## FDC3 Message Event

The FDC3 Message Event is triggered whenever a FDC3 Message is sent or received.

### Fdc3MessageInfo

There are 2 different Message Info objects that the Event provides depending whether the FDC3 message was sent or received:

- The [`Fdc3MessageSentInfo`](https://www.adaptabletools.com/docs/reference/fdc3messagesentinfo.md) object provides details of **sent** messages:

| Property | Type | Description |
| --- | --- | --- |
| [app](https://www.adaptabletools.com/docs/reference/fdc3messagesentinfo.md#app) | `AppIdentifier` | Target application for the message |
| [context](https://www.adaptabletools.com/docs/reference/fdc3messagesentinfo.md#context) | `Context` | Full FDC3 Context for object related to the Event |
| [direction](https://www.adaptabletools.com/docs/reference/fdc3messagesentinfo.md#direction) | `'sent'` | Direction - always &#39;sent&#39; |
| [eventType](https://www.adaptabletools.com/docs/reference/fdc3messagesentinfo.md#eventtype) | `'RaiseIntent' \| 'RaiseIntentForContext' \| 'BroadcastMessage'` | What was sent: `RaiseIntent`, `RaiseIntentForContext` or `BroadcastMessage`. |
| [intent](https://www.adaptabletools.com/docs/reference/fdc3messagesentinfo.md#intent) | `Intent` | FDC3 Intent which caused Event to fire (if type is `RaiseIntent`) |
| [adaptableContext](https://www.adaptabletools.com/docs/reference/fdc3messagesentinfo.md#adaptablecontext) | `any` | Custom application Context provided in `AdaptableOptions.adaptableContext` |

- The [`Fdc3MessageReceivedInfo`](https://www.adaptabletools.com/docs/reference/fdc3mefdc3messagereceivedinfossagesentinfo) object provides details of **received** messages:

| Property | Type | Description |
| --- | --- | --- |
| [context](https://www.adaptabletools.com/docs/reference/fdc3messagereceivedinfo.md#context) | `Context` | Full FDC3 Context for object related to the Event |
| [direction](https://www.adaptabletools.com/docs/reference/fdc3messagereceivedinfo.md#direction) | `'received'` | Direction - always &#39;received&#39; |
| [eventType](https://www.adaptabletools.com/docs/reference/fdc3messagereceivedinfo.md#eventtype) | `'IntentRaised' \| 'ContextBroadcast'` | EventType: `IntentRaised`, `ContextBroadcast` |
| [intent](https://www.adaptabletools.com/docs/reference/fdc3messagereceivedinfo.md#intent) | `Intent` | FDC3 Intent which caused Event to fire (if type is `IntentRaised`) |
| [metadata](https://www.adaptabletools.com/docs/reference/fdc3messagereceivedinfo.md#metadata) | `ContextMetadata` | Metadata associated with the FDC3 Context |
| [adaptableContext](https://www.adaptabletools.com/docs/reference/fdc3messagereceivedinfo.md#adaptablecontext) | `any` | Custom application Context provided in `AdaptableOptions.adaptableContext` |

### Event Subscription

Subscribing to the Event is done the same way as with all [Adaptable Events](https://www.adaptabletools.com/docs/technical-reference-adaptable-events/index.md):

```ts
api.eventApi.on('Fdc3Message', (eventInfo: Fdc3MessageSentInfo) => {
    // do something with the info
});

api.eventApi.on('Fdc3Message', (eventInfo: Fdc3MessageReceivedInfo) => {
    // do something with the info
});
```
