With a very simple jsp edit, you can force transcripts to send.
Change line 227 of chatmain.jsp to:
location.href = ‘transcriptmain.jsp?workgroup=<%= StringUtils.URLEncode(workgroup, “utf-8”) %>&chatID=<%= StringUtils.URLEncode(chatID, “utf-8”)%>&to=emailaddress’; // change to the email to receive all chat transcripts
This edit fools the transcriptmain.jsp script into thinking that the user has entered in that email address and causes it to send the transcript. The customer won’t be able to enter in an email address of their own, but instead will see the “Transcript has been sent” page when the chat session ends. (I haven’t confirmed that the transcript is actually sent since my installation isn’t configured properly, but it should work.)
As for ticketID, you may want to just piggy-back off of an existing attribute that you’re not using. The existing attributes are: username, userID, email, question, agent, product, company, state, country, location, password. Be aware that the following attributes are stripped after creating the chat session: submit, refresh, location, noUI (so I wouldn’t pick these to put your ticketID in). Also, username, userID, email, agent, and location are used by the system, and shouldn’t be used for this purpose.
To use one of these, simpily add &company= (or whichever you pick) to the URL you use when calling webchat, and it will be available as MetaData in code, and in your database in the table fpsessionmetadata. I’d suggest for integration using an SQL call to ask your database for the ticketID using the sessionID and whichever metadata attribute you piggy-back off of. Columns in that table are sessionID, metadataName, and metadataValue, so the statement would look something like "SELECT metadataValue FROM fpsessionmetadata WHERE sessionID = m5vlk151 AND metadataName = ‘company’ " (obviously the sessionID depends on your session).
Hope that helps!
Edit: I just tested, and any tag you put in the URL will make it to the database. Ex: &ticketID=TESTME