Examples: query, "exact match", wildcard*, wild?ard, wild*rd
Fuzzy search: cake~ (finds cakes, bake)
Term boost: "red velvet"^4, chocolate^2
Field grouping: tags:(+work -"fun-stuff")
Escape special characters +-&|!(){}[]^"~*?:\ - e.g. \+ \* \!
Range search: properties.timestamp:[1587729413488 TO *] (inclusive), properties.title:{A TO Z}(excluding A and Z)
Combinations: chocolate AND vanilla, chocolate OR vanilla, (chocolate OR vanilla) NOT "vanilla pudding"
Field search: properties.title:"The Title" AND text
Profile picture
Yong Sheng Tan
Administrator Moderator
1 Question, 79 Answers
  Active since 24 March 2021
  Last activity one year ago


39 + 13 this June 0 1

Badges 2

Editor Newbie
1 Votes
1 Answers
1 Votes 1 Answers 4K Views
How do I use the Symphony Dev Forum?
3 years ago
0 Universal Webhooks

Thanks for the feedback - we've channeled this to the product team and this looks to be an improvement item for the desktop app, which will allow for better notifications rendering in the future.

7 months ago
0 Integration between Jira and Symphony

Our JIRA integration is a commercial offering. Please contact your account manager to find out more.

7 months ago
0 Regex for BDK v2.14.3 to register all commands using @Slash

This change was deliberate to support a proper structure for command arguments that could be parameterised and typed. The BDK never officially supported regular expressions so it was by chance that this worked for you in the versions prior. If you would like to use custom matchers, you can choose to extend CommandActivity.

public class HelloCommand extends CommandActivity<CommandContext> {
    private MessageService messageService;
7 months ago
0 How I can get the UID or the email address from @mentioned name in the message recevied by my bot?

You can either use the Activities API and specify an @mention argument, or use a manual RealTimeEventListener. The User ID is contained within the event but you'll need an additional call to obtain other user attributes like email address.

Activities API

activities = bdk.activities()
@activities.slash(command = "/hello1 {@user}", mention_bot = False)
async def hello(context: CommandContext):
    user_id = context.arguments.get_mention('user').user_id
    email = (await ...
9 months ago
0 Extension application triggered by cache tags

The old BDK 1.0 guides have all been removed and replaced by new guides that make use of the new App Developer Kit. Please have a look - it should make developing extension apps much easier than before.

9 months ago
0 How to add a button to the window that appears when hashtag is focused

Please review the new App Developer Kit guide on how to build a basic extension app with added buttons and handlers.

9 months ago
0 How to make a dropdown disabled and read-only

Disabled elements are not supported as of writing unfortunately

9 months ago
9 months ago
0 Authentication Error in Python

For non-development related queries, especially if it impacts bots in production, please email support@symphony.com instead for a timely response.

9 months ago
0 symphony-api-client-java Latest Upgrade details

Please review the migration guide here: https://symphony-bdk-java.finos.org/migration.html

It is also useful to get a good understanding of the capabilities of BDK 2.0 as some concepts did not exist in the old SDK.
Getting Started: https://docs.developers.symphony.com/bots/getting-started/bdk
Reference: https://docs.developers.symphony.com/dev-tools/bdk-java

9 months ago
1 Get Stream Id from Promise returned by StartRoom and SendMessage API through ECP

The ECP SDK returns a standard Javascript promise so you either use await or then() to retrieve the response, in which streamId is in the object root.

  'Room Name',
  [ 123456789, 123456788, 123456787 ],
).then((response) => console.log(response.streamId));
11 months ago
0 Jinja2 Template to show the list of response objects

Please refer to Jinja2 documentation. Jinja2 is packaged separately from the Python BDK as an example in the generator project only to demonstrate how templating can be achieved. You are expected to have prior experience with Jinja2 or templating in general to employ its use with the BDK.

one year ago
0 Unable to create bot

The package generator-symphony is deprecated. You should instead be running: npm i -g yo @finos/generator-symphony and the launch command should be yo @finos/symphony.

You should also try not to run npm with sudo. Setup a user-specific globals package location where possible.

one year ago
0 How to let on_message_sent function await 5 mins and then send message

The warning you received is not about the datafeed configuration timeout, but rather the excessive 300s of waiting. You should instead use a scheduler feature of some sort to perform the tasks in your else block so that this on_message_sent def returns immediately. This avoids the situation where the same incoming message gets requeued and you perform duplicate processing. If any member of the help team respond, you can then cancel the scheduled task.

one year ago
0 get username from userID

Use the UserService to lookup the user id and obtain profile details like username.

Java BDK example, assuming users is an instance of UserService:

one year ago
0 Is symphony-bdk-core-spring-boot-starter support spring boot starter 3?

The current BDK Spring Boot Starters are still based on Spring Boot 2 but you should be able to use them in Spring Boot 3 projects. There are ongoing efforts to eventually transit the entire BDK Java project to Java 17 and have the BDK Spring Starters migrate to Spring Boot 3 as well.

one year ago
0 Cannot iterate returned list of 'list_room_members(room_id: str)'

MembershipList is an object. The actual list is in a field named value.

members = await bdk.streams().list_room_members(stream_id)
for member in members.value:
one year ago
0 Buttons - how to vertical align to a row

Unfortunately, middle-align is not a supported inline style. Here are some workarounds:

Use padding for cells in rows that contain a button

This helps a little, though the positioning is not universal, depending on user layout preferences (condensed vs spacious etc)

	<td style="padding:0.4rem 0.2rem">Something goes here</td>
	<td><button name="x">Hello</button</td>

Use divs to replicate tables

A lot more markup, but alignment ships automatically

one year ago
0 Forward email subject line to Symphony group chat

Hi @<1558879210431320064|Charlie Jones>, there is no default feature that does what you suggest as the point of Symphony is to reduce email as much as possible, not divert it. However, this is still technically possible by writing a bot that polls on an email inbox then constructs and sends a Symphony message whenever a new email arrives.

one year ago
0 Essentials

Hi @<1564627635714134016|Stephen Cunningham>, if you're asking about a customer product trial, we do not offer that. This developer platform is meant for education only.

one year ago
0 Request for Credential URL for Symphony/Certified Bot Developer Certification (Java) - Certificate Code 62BF-8862-F9CC-4D64 Dear Symphony Certification Program,

Hi @<1568015779889156096|Shifny Ahmed>, there was a glitch in the badge issuing process when you completed your exam which should be resolved now. I've just reissued your badge so it should be fine now.

one year ago
1 Symphony forms limit on number of checkboxes workaround

You can try categorising your checkboxes to divide them into a multi-step process, then use the update message endpoint to create a wizard-style experience. Unfortunately the entity limit per message is what it is and you can't really change that.

one year ago
0 FatalActivityExecutionException when I use html entities in command

You didn't share your method body, but I suspect you're trying to echo the incoming message back into the room. The exception you see is not due to the incoming format but the outgoing format.

When sending messages, all special characters have to be escaped, as you have found. You can review the docs at this page:

one year ago
0 Sending user specific messages from BOT

This is more of a cultural rather than technical issue that you should discuss with the users on their preferred experience. There are broadly two ways to go about this:

Option 1: Maintain the user-group mappings outside of Symphony, then lookup the list of users upon the need to send alerts, sending individual 1-to-1 IMs to affected users. Users only see that single IM with the bot, regardless of alert type.

Option 2: As you suggested, create 1 room per alert (or category) type...

one year ago
0 Python 3.10 Error: PROTOCOL_TLS_SERVER

This issue is now fixed with the following PR and published as of release 2.4.0.


one year ago
1 Any ability to capture @someone and store it into a variable?

From your use of underscores, I assume you're using the Python BDK.

You can use the slash command decorator and include an @mention as an argument in your pattern.

For example,

@activities.slash("/ping {@person}")
async def on_echo_mention(context: CommandContext):
    person = context.arguments.get_mention("person")
    name = person.user_display_name
    uid = person.user_id
one year ago
0 Incoming webhook/notification with Python BDK

The BDKs serve to ease building of Symphony bots and do not actually deliver any webhook functionality, so it would be incorrect to say it exists in the Java version. What does exist is a Spring Boot integration for the Java BDK, which uses Spring Boot Core. This can be changed to Spring Boot Web that contains an embedded web server that can be used to listen on a webhook. Symphony does not maintain nor provide support for that so you will have to refer to Spring's documentation.


2 years ago
0 Embed Outlook in Symphony 2.0 ?

No, that is not possible. It also does not sound intuitive or performant to embed a resource heavy legacy application into Symphony.

2 years ago
0 List all system features

Unfortunately, not at this point in time. That endpoint is used to list every entitlement feature available in the current pod so it seems unlikely to be used in an automation context. Maybe you can elaborate on the workflow you are trying to achieve and file it as a feature request on the BDK repo.


What is available is the user features endpoint, available via userService.getFeatureEntitlements(long userId) as well as the ability to u...

2 years ago
Show more results compactanswers