Hello,
I am not totally sure I understand 
It might be easier if I expose some options and you can see if one could be of some help.
- If you use an Open Messaging type of integration:
This is just to say that when you server sends the message(s) to Genesys Cloud with the POST /api/v2/conversations/messages/inbound/open, you can also send custom attributes which will be saved in the Genesys Cloud conversation context (as participant attributes for the customer - i.e. participant with purpose="customer").
You can later access the conversation using the Conversations API and retrieve these attributes.
If you need to expose some of this information to the Contact Center Agent (i.e. the consultant), you can easily do so in a Script. You can define a variable with Input property enabled that will automatically extract the value of the participant attribute with same name.
A note on Open Messaging:
Open Messaging works the same way than email or facebook/twitter/sms integration from a threading timeline perspective.
I mean that when a messaging session gets delievered to a Contact Center Agent and the agent ends the conversation, the conversation is not totally closed. If the customer/guest (your server in this case) sends a new message to Genesys Cloud, before the threading timeline is over (72 hours by default - configurable per media type), the conversation will be reopened (i.e. using the same conversatioNId).
- If your integration is based on Genesys Cloud SMS:
As you probably know, what the consultant is doing from the Genesys Desktop to generate an SMS (on behalf of a queue, to an External Contact), is leveraging a public API (Platform API).
So if that's an acceptable way to generate the interaction, you could expose a custom button, in a webapp embedded in Genesys Cloud Desktop using Custom Client App integration or in your CRM if it can embed/run some custom html/javascript based code
This webapp would leverage the Platform API (authenticating to Genesys Cloud with the users credentials, to get an access token - this is done transparently in the browser as it will leverage the creds/tokens from the Genesys Cloud Desktop tab) and could request Genesys Cloud to generate that SMS.
The first thing would be to request the SMS - I think using POST /api/v2/conversations/messages.
You would get a conversationId in return that you could save to your CRM - or whatever else you want to use and save.
You could also add participant attributes to the conversation from there - retrieving the conversation context first with GET /api/v2/conversations/{conversationId} to also identify the participantId for the customer, and then invoking PATCH /api/v2/conversations/{conversationId}/participants/{participantId}/attributes.
As mentioned in Open Messaging case above, you could also display these attributes to the consultant through a Script tab in Genesys Desktop.
- Open Messaging or SMS integration (to sync back data with your CRM):
A way to sync back data to your CRM could be to "listen" to conversation events on Genesys Cloud.
Then based on certain criteria, you could decide to push data to your CRM (or not).
You can get conversation events (i.e. topics) using the notification service from Notifications API. This is based on a WebSocket approach.
If you are already leveraging AWS, there is a second approach which will soon become available - integration to Amazon EventBridge - to avoid websocket approach.
It is currently in beta but will be available soon. There are some answers the product manager provided on FAQs about the EventBridge integration - including target timeframe for availability.
Finally, there is another internal/restricted beta going on - about Automation Triggers.
The principle is that you will be able to define a trigger based on a topic (some of the Notifications API topics) and a matching criteria (a JSONPath expression). If the trigger is matched, it will allow to invoke an Architect workflow. From the workflow, you have access to the conversationId and other parameters, and you could invoke a Web Services Data Action to make a request to your CRM to get some data saved.
Hope that helps a bit.
Regards,