社文字D: 轟趴開交物語

1,183 views
1,115 views

Published on

Socialtext 4: A tale of Shindig and OpenSocial. (Chinese version, presented at COSCUP.tw 2010.)

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,183
On SlideShare
0
From Embeds
0
Number of Embeds
15
Actions
Shares
0
Downloads
19
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide















































































































































































































































  • 社文字D: 轟趴開交物語

    1. 1. Bringing the best of Open Web into the Enterprise since 2001 6500+ customers. One mission. Free the Flow of Work.
    2. 2. A 1.0 2001 Wikipedia
    3. 3. A 1.0 2001 2002 Wikipedia Socialtext Workspace
    4. 4. A 1.0 2002 Search Appliance
    5. 5. A 1.0 2002 2003 Search Appliance Socialtext Appliance
    6. 6. A 1.0 2003 Blogger.com
    7. 7. A 1.0 2003 2004 Blogger.com Socialtext Blogs
    8. 8. A 1.0 2004 Google Spreadsheet
    9. 9. A 1.0 2004 2005 Google Spreadsheet Socialtext SocialCalc
    10. 10. B 2.0 2005 Mobile WebKit
    11. 11. B 2.0 2005 2006 Mobile WebKit Socialtext Mobile
    12. 12. B 2.0 2006 Twitter
    13. 13. B 2.0 2006 2007 Twitter Socialtext Signals
    14. 14. C 3.0 2007 OpenSocial
    15. 15. C 3.0 2007 2008 OpenSocial Socialtext Dashboard
    16. 16. C 3.0 2008 Adobe AIR
    17. 17. C 3.0 2008 2009 Adobe AIR Socialtext Desktop
    18. 18. D 4.0 2009 Facebook OpenStream
    19. 19. D 4.0 2009 2010 Facebook OpenStream Socialtext Connect
    20. 20. Socialtext 4 . . Ope nS oc ia l G adge ts w it h Apach e Sh in dig
    21. 21. Be fo re Ope nS oc ia l.. .
    22. 22. ?? ?
    23. 23. Gadget s to th e re sc ue !
    24. 24. Ope nS oc ia l
    25. 25. iG oo gle Da shbo ard
    26. 26. So ci al te xt Da shbo ard
    27. 27. So ci al te xt Da shbo ard
    28. 28. So ci al te xt Da shbo ard
    29. 29. So ci al te xt Da shbo ard
    30. 30. So ci al te xt Da shbo ard
    31. 31. Pa rt yi ng w it h Sh in dig
    32. 32. http://.../Gadget.xml
    33. 33. http://.../Gadget.xml .html
    34. 34. http://.../Gadget.xml .html .css
    35. 35. http://.../Gadget.xml .html .css .js
    36. 36. http://.../Gadget.xml .html .css .js Features API
    37. 37. http://.../Gadget.xml .html .css .js Features API
    38. 38. Fo r exam ple. ..
    39. 39. Fo r exam ple. ..
    40. 40. Fo r exam ple. ..
    41. 41. one_sp re ad sh ee t. xm l
    42. 42. <?xml
version="1.0"
encoding="UTF‐8"?> <Module> one_sp re ad sh ee t. xm l
    43. 43. <?xml
version="1.0"
encoding="UTF‐8"?> <Module> 

<ModulePrefs one_sp re ad sh ee t. xm l
    44. 44. <?xml
version="1.0"
encoding="UTF‐8"?> <Module> 

<ModulePrefs 



thumbnail="one_spreadsheet.png"> one_sp re ad sh ee t. xm l
    45. 45. <?xml
version="1.0"
encoding="UTF‐8"?> <Module> 

<ModulePrefs 



thumbnail="one_spreadsheet.png"> 



title="Spreadsheet
Page" one_sp re ad sh ee t. xm l
    46. 46. <?xml
version="1.0"
encoding="UTF‐8"?> <Module> 

<ModulePrefs 



thumbnail="one_spreadsheet.png"> 



title="Spreadsheet
Page" 



description="Displays
a
single…" one_sp re ad sh ee t. xm l
    47. 47. <?xml
version="1.0"
encoding="UTF‐8"?> <Module> 

<ModulePrefs 



thumbnail="one_spreadsheet.png"> 



title="Spreadsheet
Page" 



description="Displays
a
single…" 



<Requires
feature="opensocial‐0.8"/> one_sp re ad sh ee t. xm l
    48. 48. <?xml
version="1.0"
encoding="UTF‐8"?> <Module> 

<ModulePrefs 



thumbnail="one_spreadsheet.png"> 



title="Spreadsheet
Page" 



description="Displays
a
single…" 



<Requires
feature="opensocial‐0.8"/> 



<Requires
feature="dynamic‐height"/> one_sp re ad sh ee t. xm l
    49. 49. <?xml
version="1.0"
encoding="UTF‐8"?> <Module> 

<ModulePrefs 



thumbnail="one_spreadsheet.png"> 



title="Spreadsheet
Page" 



description="Displays
a
single…" 



<Requires
feature="opensocial‐0.8"/> 



<Requires
feature="dynamic‐height"/> 



<Requires
feature="settitle"/> one_sp re ad sh ee t. xm l
    50. 50. <?xml
version="1.0"
encoding="UTF‐8"?> <Module> 

<ModulePrefs 



thumbnail="one_spreadsheet.png"> 



title="Spreadsheet
Page" 



description="Displays
a
single…" 



<Requires
feature="opensocial‐0.8"/> 



<Requires
feature="dynamic‐height"/> 



<Requires
feature="settitle"/> 

</ModulePrefs>… one_sp re ad sh ee t. xm l
    51. 51. one_sp re ad sh ee t. xm l
    52. 52. 

… 

<UserPref 



display_name="Workspace" 



name="ws" 



datatype="workspace" 



required="true"
/> 

… one_sp re ad sh ee t. xm l
    53. 53. 

… 

<UserPref 



display_name="Spreadsheet" 



display_name="Workspace" 



name="page" 



name="ws" 



datatype="spreadsheet" 



datatype="workspace" 



required="true"
/> 

… one_sp re ad sh ee t. xm l
    54. 54. 
…<UserPref 

… 



display_name="Height" 

<UserPref 



name="height" 



display_name="Spreadsheet" 



display_name="Workspace" 



datatype="enum" 



name="page" 



name="ws" 



default_value="300"> 



datatype="spreadsheet" 



datatype="workspace" 



…<EnumValue
value="100"/>… 



required="true"
/> 

</UserPref>… 

… one_sp re ad sh ee t. xm l
    55. 55. 
…<UserPref 

… 



display_name="Height" 

<UserPref 



name="height" 



display_name="Spreadsheet" 



display_name="Workspace" 



display_name="Scroll
to" 



datatype="enum" 



name="page" 



name="ws" 



name="scroll_to" 



default_value="300"> 



datatype="spreadsheet" 



datatype="workspace" 



datatype="enum" 



…<EnumValue
value="100"/>… 



required="true"
/> 



default_value="A1"/> 

</UserPref>… 

… one_sp re ad sh ee t. xm l
    56. 56. 
…<UserPref 

… 



display_name="Height" 

<UserPref 



name="height" 



display_name="Spreadsheet" 



display_name="Workspace" 



display_name="Scroll
to" 



datatype="enum" 



name="page" 



name="ws" 



name="scroll_to" 



default_value="300"> 



datatype="spreadsheet" 



datatype="workspace" 



datatype="enum" 



…<EnumValue
value="100"/>… 



required="true"
/> 



default_value="A1"/> 

</UserPref>… 

… one_sp re ad sh ee t. xm l
    57. 57. 
…<UserPref 

… 



display_name="Height" 

<UserPref 



name="height" 



display_name="Spreadsheet" 



display_name="Workspace" 



display_name="Scroll
to" 



datatype="enum" 



name="page" 



name="ws" 



name="scroll_to" 



default_value="300"> 



datatype="spreadsheet" 



datatype="workspace" 



datatype="enum" 



…<EnumValue
value="100"/>… 



required="true"
/> 



default_value="A1"/> 

</UserPref>… 

… one_sp re ad sh ee t. xm l
    58. 58. 
…<UserPref 

… 



display_name="Height" 

<UserPref 



name="height" 



display_name="Spreadsheet" 



display_name="Workspace" 



display_name="Scroll
to" 



datatype="enum" 



name="page" 



name="ws" 



name="scroll_to" 



default_value="300"> 



datatype="spreadsheet" 



datatype="workspace" 



datatype="enum" 



…<EnumValue
value="100"/>… 



required="true"
/> 



default_value="A1"/> 

</UserPref>… 

… one_sp re ad sh ee t. xm l
    59. 59. 
…<UserPref …<Content
type="html"><![CDATA[ 

… 



display_name="Height" 

<UserPref 


<html><head> 



name="height" 



display_name="Spreadsheet" 



display_name="Workspace" 



display_name="Scroll
to" 



datatype="enum" 



name="page" 



name="ws" 



name="scroll_to" 



default_value="300"> 



datatype="spreadsheet" 



datatype="workspace" 



datatype="enum" 



…<EnumValue
value="100"/>… 



required="true"
/> 



default_value="A1"/> 

</UserPref>… 

… one_sp re ad sh ee t. xm l
    60. 60. 
…<UserPref …<Content
type="html"><![CDATA[ 

… 



display_name="Height" 

<UserPref 


<html><head> 



name="height" 



display_name="Spreadsheet" 



display_name="Workspace" 




<script
src="widget.js"/> 



display_name="Scroll
to" 



datatype="enum" 



name="page" 



name="ws" 



name="scroll_to" 



default_value="300"> 



datatype="spreadsheet" 



datatype="workspace" 



datatype="enum" 



…<EnumValue
value="100"/>… 



required="true"
/> 



default_value="A1"/> 

</UserPref>… 

… one_sp re ad sh ee t. xm l
    61. 61. 
…<UserPref …<Content
type="html"><![CDATA[ 

… 



display_name="Height" 

<UserPref 


<html><head> 



name="height" 



display_name="Spreadsheet" 



display_name="Workspace" 




<script
src="widget.js"/> 



display_name="Scroll
to" 



datatype="enum" 



name="page" 



name="ws" 




<script
src="socialcalc.js"/> 



name="scroll_to" 



default_value="300"> 



datatype="spreadsheet" 



datatype="workspace" 



datatype="enum" 



…<EnumValue
value="100"/>… 



required="true"
/> 



default_value="A1"/> 

</UserPref>… 

… one_sp re ad sh ee t. xm l
    62. 62. 
…<UserPref …<Content
type="html"><![CDATA[ 

… 



display_name="Height" 

<UserPref 


<html><head> 



name="height" 



display_name="Spreadsheet" 



display_name="Workspace" 




<script
src="widget.js"/> 



display_name="Scroll
to" 



datatype="enum" 



name="page" 



name="ws" 




<script
src="socialcalc.js"/> 



name="scroll_to" 



default_value="300"> 



datatype="spreadsheet" 



datatype="workspace" 


</head><body>…</body></html> 



datatype="enum" 



…<EnumValue
value="100"/>… 



required="true"
/> 



default_value="A1"/> 

</UserPref>… 

… one_sp re ad sh ee t. xm l
    63. 63. 
…<UserPref …<Content
type="html"><![CDATA[ 

… 



display_name="Height" 

<UserPref 


<html><head> 



name="height" 



display_name="Spreadsheet" 



display_name="Workspace" 




<script
src="widget.js"/> 



display_name="Scroll
to" 



datatype="enum" 



name="page" 



name="ws" 




<script
src="socialcalc.js"/> 



name="scroll_to" 



default_value="300"> 



datatype="spreadsheet" 



datatype="workspace" 


</head><body>…</body></html> 



datatype="enum" 



…<EnumValue
value="100"/>… 



required="true"
/> 

]]></Content> 



default_value="A1"/> 

</UserPref>… 

… one_sp re ad sh ee t. xm l
    64. 64. 
…<UserPref …<Content
type="html"><![CDATA[ 

… 



display_name="Height" 

<UserPref 


<html><head> 



name="height" 



display_name="Spreadsheet" 



display_name="Workspace" 




<script
src="widget.js"/> 



display_name="Scroll
to" 



datatype="enum" 



name="page" 



name="ws" 




<script
src="socialcalc.js"/> 



name="scroll_to" 



default_value="300"> 



datatype="spreadsheet" 



datatype="workspace" 


</head><body>…</body></html> 



datatype="enum" 



…<EnumValue
value="100"/>… 



required="true"
/> 

]]></Content> 



default_value="A1"/> 

</UserPref>… 

… </Module> one_sp re ad sh ee t. xm l
    65. 65. one_sp re ad sh ee t. xm l
    66. 66. <a
href="/__UP_ws__/?__UP_page__"> 

View </a> one_sp re ad sh ee t. xm l
    67. 67. <a
href="/__UP_ws__/?__UP_page__"> 

View </a> or one_sp re ad sh ee t. xm l
    68. 68. <a
href="/__UP_ws__/?__UP_page__"> 

View </a> or <a
href="/__UP_ws__/?__UP_page__#edit"> 

Edit </a> one_sp re ad sh ee t. xm l
    69. 69. <a
href="/__UP_ws__/?__UP_page__"> 

View </a> or <a
href="/__UP_ws__/?__UP_page__#edit"> 

Edit </a> this
spreadsheet
from one_sp re ad sh ee t. xm l
    70. 70. <a
href="/__UP_ws__/?__UP_page__"> 

View </a> or <a
href="/__UP_ws__/?__UP_page__#edit"> 

Edit </a> this
spreadsheet
from <a
href="/__UP_ws__"> 

__UP_ws__ </a> one_sp re ad sh ee t. xm l
    71. 71. w idge t.js
    72. 72. gadgets.util.registerOnLoadHandler(init); w idge t.js
    73. 73. function
init
()
{ gadgets.util.registerOnLoadHandler(init); w idge t.js
    74. 74. function
init
()
{ 

gadgets.window.adjustHeight(__UP_height__); gadgets.util.registerOnLoadHandler(init); w idge t.js
    75. 75. function
init
()
{ 

gadgets.window.adjustHeight(__UP_height__); 

gadgets.io.makeRequest( gadgets.util.registerOnLoadHandler(init); w idge t.js
    76. 76. function
init
()
{ 

gadgets.window.adjustHeight(__UP_height__); 

gadgets.io.makeRequest( gadgets.util.registerOnLoadHandler(init); 



"/data/workspaces/" 





+
'__UP_ws__/pages/__UP_page__', w idge t.js
    77. 77. function
init
()
{ 

gadgets.window.adjustHeight(__UP_height__); 

gadgets.io.makeRequest( gadgets.util.registerOnLoadHandler(init); 



"/data/workspaces/" 





+
'__UP_ws__/pages/__UP_page__', 



responseCallback, w idge t.js
    78. 78. function
init
()
{ 

gadgets.window.adjustHeight(__UP_height__); 

gadgets.io.makeRequest( gadgets.util.registerOnLoadHandler(init); 



"/data/workspaces/" 





+
'__UP_ws__/pages/__UP_page__', 



responseCallback, 



{
CONTENT_TYPE:
"JSON"
} 

); w idge t.js
    79. 79. function
init
()
{ 

gadgets.window.adjustHeight(__UP_height__); 

gadgets.io.makeRequest( gadgets.util.registerOnLoadHandler(init); 



"/data/workspaces/" 





+
'__UP_ws__/pages/__UP_page__', 



responseCallback, 



{
CONTENT_TYPE:
"JSON"
} 

); } w idge t.js
    80. 80. function
responseCallback
(r)
{ function
init
()
{ 

gadgets.window.adjustHeight(__UP_height__); 

gadgets.io.makeRequest( gadgets.util.registerOnLoadHandler(init); 



"/data/workspaces/" 





+
'__UP_ws__/pages/__UP_page__', 



responseCallback, 



{
CONTENT_TYPE:
"JSON"
} 

); } w idge t.js
    81. 81. function
responseCallback
(r)
{ function
init
()
{ 

if
(r.errors.length)
{
return
onError();
} 

gadgets.window.adjustHeight(__UP_height__); 

gadgets.io.makeRequest( gadgets.util.registerOnLoadHandler(init); 



"/data/workspaces/" 





+
'__UP_ws__/pages/__UP_page__', 



responseCallback, 



{
CONTENT_TYPE:
"JSON"
} 

); } w idge t.js
    82. 82. function
responseCallback
(r)
{ function
init
()
{ 

if
(r.errors.length)
{
return
onError();
} 

gadgets.window.adjustHeight(__UP_height__); 

gadgets.io.makeRequest( gadgets.util.registerOnLoadHandler(init); 

var
s
=
new
SocialCalc.SpreadsheetViewer(); 



"/data/workspaces/" 





+
'__UP_ws__/pages/__UP_page__', 



responseCallback, 



{
CONTENT_TYPE:
"JSON"
} 

); } w idge t.js
    83. 83. function
responseCallback
(r)
{ function
init
()
{ 

if
(r.errors.length)
{
return
onError();
} 

gadgets.window.adjustHeight(__UP_height__); 

gadgets.io.makeRequest( gadgets.util.registerOnLoadHandler(init); 

var
s
=
new
SocialCalc.SpreadsheetViewer(); 



"/data/workspaces/" 

s.InitializeSpreadsheetViewer('content'); 





+
'__UP_ws__/pages/__UP_page__', 



responseCallback, 



{
CONTENT_TYPE:
"JSON"
} 

); } w idge t.js
    84. 84. function
responseCallback
(r)
{ function
init
()
{ 

if
(r.errors.length)
{
return
onError();
} 

gadgets.window.adjustHeight(__UP_height__); 

gadgets.io.makeRequest( gadgets.util.registerOnLoadHandler(init); 

var
s
=
new
SocialCalc.SpreadsheetViewer(); 



"/data/workspaces/" 

s.InitializeSpreadsheetViewer('content'); 





+
'__UP_ws__/pages/__UP_page__', 

s.LoadSave(r.data.wikitext); 



responseCallback, 



{
CONTENT_TYPE:
"JSON"
} 

); } w idge t.js
    85. 85. function
responseCallback
(r)
{ function
init
()
{ 

if
(r.errors.length)
{
return
onError();
} 

gadgets.window.adjustHeight(__UP_height__); 

gadgets.io.makeRequest( gadgets.util.registerOnLoadHandler(init); 

var
s
=
new
SocialCalc.SpreadsheetViewer(); 



"/data/workspaces/" 

s.InitializeSpreadsheetViewer('content'); 





+
'__UP_ws__/pages/__UP_page__', 

s.LoadSave(r.data.wikitext); 



responseCallback, 

s.editor.MoveECell('__UP_scroll_to__'); 



{
CONTENT_TYPE:
"JSON"
} 

); } w idge t.js
    86. 86. function
responseCallback
(r)
{ function
init
()
{ 

if
(r.errors.length)
{
return
onError();
} 

gadgets.window.adjustHeight(__UP_height__); 

gadgets.io.makeRequest( gadgets.util.registerOnLoadHandler(init); 

var
s
=
new
SocialCalc.SpreadsheetViewer(); 



"/data/workspaces/" 

s.InitializeSpreadsheetViewer('content'); 





+
'__UP_ws__/pages/__UP_page__', 

s.LoadSave(r.data.wikitext); 



responseCallback, 

s.editor.MoveECell('__UP_scroll_to__'); 



{
CONTENT_TYPE:
"JSON"
} 

); 

gadgets.window.setTitle(r.data.name); } w idge t.js
    87. 87. function
responseCallback
(r)
{ function
init
()
{ 

if
(r.errors.length)
{
return
onError();
} 

gadgets.window.adjustHeight(__UP_height__); 

gadgets.io.makeRequest( gadgets.util.registerOnLoadHandler(init); 

var
s
=
new
SocialCalc.SpreadsheetViewer(); 



"/data/workspaces/" 

s.InitializeSpreadsheetViewer('content'); 





+
'__UP_ws__/pages/__UP_page__', 

s.LoadSave(r.data.wikitext); 



responseCallback, 

s.editor.MoveECell('__UP_scroll_to__'); 



{
CONTENT_TYPE:
"JSON"
} 

); 

gadgets.window.setTitle(r.data.name); } w idge t.js
    88. 88. function
responseCallback
(r)
{ function
init
()
{ 

if
(r.errors.length)
{
return
onError();
} 

gadgets.window.adjustHeight(__UP_height__); 

gadgets.io.makeRequest( gadgets.util.registerOnLoadHandler(init); 

var
s
=
new
SocialCalc.SpreadsheetViewer(); 



"/data/workspaces/" 

s.InitializeSpreadsheetViewer('content'); 





+
'__UP_ws__/pages/__UP_page__', 

s.LoadSave(r.data.wikitext); 



responseCallback, 

s.editor.MoveECell('__UP_scroll_to__'); 



{
CONTENT_TYPE:
"JSON"
} 

); 

gadgets.window.setTitle(r.data.name); } DONE! w idge t.js
    89. 89. Ec lip se
    90. 90. App St ore fo r th e En te rp ri se
    91. 91. App St ore fo r th e En te rp ri se
    92. 92. App St ore fo r th e En te rp ri se
    93. 93. Socialtext 4 . S oc ia l Net wor k ing w it h S oc ia l Objec ts
    94. 94. So ci al Obje ct s
    95. 95. Web 1.0:
    96. 96. Em ai l
    97. 97. So ci al Net wor ki ng
    98. 98. So ci al Net wor ki ng
    99. 99. So ci al Net wor ki ng
    100. 100. Social Gadgets Social API Core Gadgets Core API Ope nS oc ia l 1.0
    101. 101. gadgets.* io json Social API Social Gadgets Prefs util views + Core Gadgets Core API flash window i18n skins ... Ope nS oc ia l 1.0
    102. 102. osapi.* people activities Social API Social Gadgets + groups messages appdata Core Gadgets Core API albums mediaitems ... Ope nS oc ia l 1.0
    103. 103. LDAP GET /data/people/:id
    104. 104. GET /data/people/:id
    105. 105. GET /data/people/:id
    106. 106. GET /data/people/:id/tags
    107. 107. GET /data/people/:id/tags
    108. 108. GET /data/people/:id/watchers
    109. 109. GET /data/people/:id/watchlist
    110. 110. GET /data/users/:id/groups
    111. 111. GET /data/events/activities/:id
    112. 112. Step s to Ado pt io n
    113. 113.
    114. 114. ✓ ✓
    115. 115. Socialtext 4 . A ct iv it y St re ams fo r th e S oc ia l Laye r
    116. 116. A ct iv it y St re ams
    117. 117. ?? ? RSS ≉
    118. 118. ?? ? RSS ≉
    119. 119. ?? ? RSS ≉
    120. 120. ?? ? RSS ≉
    121. 121. ... ... ... Atom ≈
    122. 122. ... ... ... Atom ≈
    123. 123. ... ... ... Atom ≈
    124. 124. ... ... ... Atom ≈
    125. 125. ... ... ... Atom ≈
    126. 126. A ct iv it yStreams
    127. 127. actor A ct iv it yStreams
    128. 128. actor object A ct iv it yStreams
    129. 129. actor object verb A ct iv it yStreams
    130. 130. actor object verb A ct iv it yStreams
    131. 131. actor object verb + target icon generator provider title body
    132. 132. actor object verb + target icon generator provider title body
    133. 133. actor object verb + target icon generator provider title body
    134. 134. <Atom>
    135. 135. <Atom>
    136. 136. <Atom> {JSON}
    137. 137. <Atom> {JSON} Ope nS oc ia l 1.1 (Draft)
    138. 138. <Atom> {JSON} Ope nS oc ia l 1.1 (Draft)
    139. 139. Fe edProx y
    140. 140. Fe edProx y
    141. 141. So ci al te xt Co nnec t
    142. 142. So ci al te xt Co nnec t
    143. 143. So ci al te xt Co nnec t
    144. 144. Mandy Cunningham Inventory: NCC1701 InventoryBot There are 341 units of part #NCC1701 available SalesforceBot Lead record for Tricia Nuzzo had been converted to an ProcessWatcher opportunity Page “Q3 Event Planning” in Marketing is awaiting approval to Sales Joseph Hines Uploaded Q3pipeline.ppt to Sales presentation library This is great. Thank you for sharing. Looking good, Q3 is going to be fantastic!
    145. 145. Mandy Cunningham Inventory: NCC1701 InventoryBot There are 341 units of part #NCC1701 available CRM SalesforceBot Lead record for Tricia Nuzzo had been converted to an ProcessWatcher ERP opportunity Page “Q3 Event Planning” in Marketing is awaiting approval to Sales Joseph Hines Uploaded Q3pipeline.ppt to SharePoint Sales presentation library This is great. Thank you for sharing. Looking good, Q3 is going to be fantastic!
    146. 146. App Bots Mandy Cunningham Inventory: NCC1701 InventoryBot There are 341 units of part #NCC1701 available CRM SalesforceBot Lead record for Tricia Nuzzo had been converted to an ProcessWatcher ERP opportunity Page “Q3 Event Planning” in Marketing is awaiting approval to Sales Joseph Hines Uploaded Q3pipeline.ppt to SharePoint Sales presentation library This is great. Thank you for sharing. Looking good, Q3 is going to be fantastic!
    147. 147. App Bots Mandy Cunningham Inventory: NCC1701 InventoryBot There are 341 units of part #NCC1701 available CRM SalesforceBot Lead record for Tricia Nuzzo had been converted to an ProcessWatcher ERP Annotations opportunity Page “Q3 Event Planning” in Marketing is awaiting approval to Sales Joseph Hines Uploaded Q3pipeline.ppt to SharePoint Sales presentation library This is great. Thank you for sharing. Looking good, Q3 is going to be fantastic!
    148. 148. B ob
    149. 149. B ob
    150. 150. B ob
    151. 151. B ugB ot
    152. 152. B ugB ot
    153. 153. B ugB ot
    154. 154. : S a ll y
    155. 155. : S a ll y
    156. 156. : S a ll y
    157. 157. : S a ll y
    158. 158. : S a ll y
    159. 159. Th e So ci al Laye r
    160. 160. Th e So ci al Laye r
    161. 161. Th e So ci al Laye r
    162. 162. Th e So ci al Laye r
    163. 163. D 4.0
    164. 164. D 4.0
    165. 165. D 4.0
    166. 166. D 4.0
    167. 167. D 4.0 Th a n k yo u!
    168. 168. CC0 h tt p:/ udre y t.org/co sc up2010/ /a

    ×