Mapping custom fields to external datasources (for OnDemand Confluence)
Asked by Alfred Dellicicchi:

What options exist for creating a custom field in Conlfuence projects that would have options determined by the results of a query to external data source? I've seen varied approaches (from using a custom ajax service to inject picklist values upon page load, to middleware, etc) but I was wondering if there's anything analogous to the nFeed product for JIRA (in either a plugin or even an open source format).


Answers:
author: DiepV
body: Indeed, it is not possible, as it needs a development for authentification that nFeed doesn't handle for now. The issue is authentification, not handling REST APIs.

We might develop it, but not this quarter.


author: DiepV
body: Hello,

this is not really a matter of solution, but we are thinking about nFeed for Confluence, but this won't be for 2014 for sure.

This would need at least 2015 for us to work on nFeed for Confluence.

Thank you for your understanding,

Have a beautiful day!

Diep

comments: author: Matt Shelton
body: So you're saying that nFeed for JIRA right now cannot work with the REST APIs from Salesforce?


author: Matt Shelton
body: We're evaluating nFeed for this reason (and others). Can the solution be posted here please?


author: Alfred Dellicicchi
body: Thank you Diep, I have responded to you via email but wanted to post this in case others come across the question and had more input. This is just one approach, obviously :)

**Description:**

My main need is to have a database connector to [Salesforce.com](http://Salesforce.com)(which has both Ajax, REST and SOAP Apis available) where I can map a query result to a custom field in Confluence that provides users a select list (single pick list or multi-select) to choose one or many values.

**Field Components:**

The custom field would have a flag for " single or multiple" value. In addition to this, the data stored in the custom field on confluence would probably need to be multipart -- consisting of data pairs (to support a multiple select) :

1. ***conlfuenceDisplayValue***The text value for display on a page or in report/dashboard
2. ***externalId***the externalid of the record (salesforce uses 18 character alphanumeric strings)

I assume you could map the fields from the SOQL query back to the confluence values either by using order (1st is Id, next field is DisplayName) or SOQL aliasing.

*Example SOQL statement with alias to Conlfuence field names : \[ SELECT Id* ***externalId*** *, Degree_Catalog_Name_c* ***conlfuenceDisplayValue*** *FROM Degrees_c WHERE Active_c = true \]*

**Example Use Case:**

In confluence we have Pages where a page represents a Class in our university. We'd like to associate the page to Degrees that offer it.

I'd add a custom field to the Class page template, name it "Degree Program", choose whether it can have single or multiple values (multiple in this case), then I'd be able to write a Salesforce query (SOQL language) in a text box that can define the records that would appear as pick list options when a Conlfuence user was filling in the field. Ideally, in the setup screen where you are defining the custom field's query, there would be a "test query" button and a feedback box to confirm data returned by the query - (show a row count of returned records or display any error messages like 'invalid query: field does not exist")


author: DiepV
body: Dear Alfred,

I contacted you by email about it, I hope you can tell me more about your expectations, as we already develop nFeed for JIRA.

Thank you and have a beautiful day


Tags: confluence-cloud

custom-field

data-source

external

field

salesforce